묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩테스트 [ ALL IN ONE ]
시간복잡도
계산하는법을 몰라서 질문드립니다. [심화] 시간복잡도 강의에서 예시로 알려주심 Two sum 에서요제약조건 중에 아래와 같은 것이 있었는데요O(nlogn)에 10의 9승을 대입해도 10의8승이 넘어간다고 하셨는데nlogn에 10의9승을 n에 대입하고 나서 계산을 어떻게해야지 모르겠습니다10의 8승이 넘어가는지 어떻게 알 수 있나요?? 해당부분에 대해서 검색을 해봤는데나오지가 않네요ㅜㅜ
-
미해결코딩테스트 [ ALL IN ONE ]
심화 과정 커리큘럼 질문
안녕하세요. 좋은 강의 잘 보고 있습니다.혹시 심화 과정에서 순열, 조합은 따로 안 다루시나요?
-
미해결코딩테스트 [ ALL IN ONE ]
자바스크립트 사용하는데
사실상 자바스크립트 object가 그럼 해시테이블이랑 유사하게 구현이 됐고 object를 사용하면 되는구나... 라고 생각하면 될까요?
-
미해결코딩테스트 [ ALL IN ONE ]
11:50 동적 배열
O(n)이 되는 것들은 대부분 '한칸씩 한칸씩' 옴겨 가기 때문이라고 하셨는데 이것이 '변수를 칸안에 집어 넣는 것'을 한 두 번만 해도 되면 O(1) 이 되고 '변수를 칸안에 집어 넣는 것'을 계속 한칸한칸 n번 해야 하면 O(n)이 되는 건가요?
-
미해결코딩테스트 [ ALL IN ONE ]
강의교재 노션 계정 변경
안녕하세요오늘 강의를 구매하여 이메일과 닉네임을 제출했습니다.제 메일로 노션 초대 메일이 도착하였는데제가 사용하는 메일 주소와 제 노션 계정이 달라제가 주로 사용하는 노션 주소로 접속하는데 어려움이 있습니다.gytjs3220@inu.ac.kr 로 초대를 부탁드려도 될까요??
-
미해결코딩테스트 [ ALL IN ONE ]
Live 문제풀이 업데이트 날짜
강의 정말 정말 잘 듣고 있어요! 너비 우선 탐색 [코테 적용] 문제풀이 강의 2개는 언제쯤 올라오나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
프로그래머스나 백준 확인해보니까
프로그래머스에선 보통 숫자의 범위, 배열의 최대크기백준에선 시간제한 이런식으로 주어지는데 여기서 말씀해주신건 시간제한이죠ㅕ??
-
미해결코딩테스트 [ ALL IN ONE ]
[코테 적용] LIFO 2번째 문제 시간복잡도 질문
안녕하세요 좋은 강의 감사합니다 !! 바로 본론으로 들어가면, 여기서 조건이 10^5 이니깐 O(n^2) 로 풀면 안된다고 하셨는데..for 문 안에 while 문이 있으니깐 결국 O(n^2) 아닌가요??temperatures 도 한번 훑고, stack 도 한번 훑으니깐 총 O(n^2) 이라고 생각했는데 잘못 이해하고 있나봐요 ㅜㅜ 시간복잡도 질문 - 밤의멜로디 님이 주신 질문에 대한 답변 내용이라면 while 문도 O(n^2) 이 아닌가 라는 생각이 듭니다..
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
BFS 질문 있습니다.
let visited_vertices = []; visited_vertices[vertex.value] = true;BFS에서 visited_vertices를 위처럼 배열로 설정하신 이유가 따로 있나요?? 동작은 하는 것 같은데, 콘솔찍어서 보니까 배열에 저렇게 담겨져 있는게 뭔가 어색하기도 하고 DFS에서는 객체로 하셨더라구요. [ Ben: true, Jake: true, Ivy: true, Anna: true, David: true, Joy: true, Elin: true, Owen: true ]
-
미해결코딩테스트 [ ALL IN ONE ]
동적배열 7:35
안녕하세요!동적배열 강의관련 질문드립니다.정적배열과 동적배열의 시간복잡도를 비교하는 표에서,정적배열의 데이터 추가/삽입(insert_back/insert_at)이 이해가 안 되어 질문드립니다.정적배열은 선언과 동시에 크기가 정해지는데, 이미 초기화가 된 상태에서 추가나 삽입은 안 되지 않나요?혹시 크기만 선언된 비어있는 정적배열을 말하는건가 생각해보니, 비어있는거면 insert_at이나 delete_at을 할 때도 기존 데이터를 옮길 필요가 없으니 O(n)이 아니라 O(1)이지 않나싶어서 그건 아닌 것 같고,아니면 크기보다 데이터가 덜 들어간 케이스에서 저런 시간복잡도가 나오는건가요? ㅠㅠ 그렇다면 저게 다 이해가 됩니다.그런데 아무리 그래도 정적배열에서는 추가/삽입의 한계가 있지 않나요? 어떤 조건에서 저게 되는건지 알려주세요ㅠㅠ
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
else if 질문 있습니다.
힙 삽입에서 getInsertingParent(){ if(this.lastInsertedNode.getParent() == null){ return this.lastInsertedNode; }else{ if(this.lastInsertedNode == this.lastInsertedNode.getParent().getLeftSubTree()){ return this.lastInsertedNode.getParent(); }else{ let current = this.lastInsertedNode; let firstRightSibling = null; while(current.getParent().getParent() != null){ current = current.getParent(); firstRightSibling = this.getRightSibling(current); if(firstRightSibling != null){ break; } }마지막으로 삽입된 노드가 루트노드일때를 if문으로 처리하시고 그다음 else 안에 서 if문으로 다시 처리하셨는데 이유가 있을까요? else if로 안쓰시고 else 안에서 if를 쓰신 이유가 궁금합니다..!!
-
해결됨코딩테스트 [ ALL IN ONE ]
시간복잡도 질문
안녕하세요 강사님알찬 강의 구성으로 재미있게 강의를 듣고 있습니다.다름이 아니라 시간 복잡도에 대해서 여쭤보고 싶은게 있어서 글을 남깁니다.현재 완전탐색을 하게 되면 시간 복잡도가 n2이 된다고 하셨는데, 두번째 반복문 조건을 j = i+1 로 설정하는 순간부터 n2이 아니라 n log n이 되는 것이 아닌가 싶어서요.만약 nums의 길이가 5라면 최악의 경우에도 반복문이 전체가 돌아간다면 ( 4+ 3+ 2+ 1 ) = 10번으로 n2 = 25일때보다는 획기적으로 줄어드는 것 같아요!5의 경우에도 절반 이하로 줄어들었는데 숫자가 커지면 커질수록 기하급수적으로 줄어들 것으로 보이는데, 혹시 제가 잘못 생각하고 있는 걸까요? ㅠㅠ
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
이해가됐습니다...
강의를 보면서 왜 갑자기 count 1이 2가 되지 했는데hanoi 함수가 스택에 쌓이면서 count가 2이었던 함수 3이었던 함수가 끝이 안났기 때문에 계속 count가 올라갔던거군요. 이거 때문에 분명 count 1인 상태로 함수가 끝났는데 갑자기 2이었던 함수가 왜 시작되는지 의아했습니다. 동영상 5번 반복적으로 보니깐 이제야 이해되네요! 감사합니다!
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
하위문제 하향식 계산이 정확히 뭔지 모르겠습니다.
하위문제란 마지막 원소를 제외하고 나머지 원소를 하위문제인걸까요?하향식 계산이라는거는 증가 계산이 아닌 감소 계산인걸까요? + => 상향식, - => 하향식?이러한 점 때문에 재귀 이해가 더 안되네요 ㅠㅠ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
34강 얕은 복사 깊은 복사 관련 문의
안녕하세요 34강에서 Assignment, Shallow Copy, Deep Copy 강좌의 마지막 부분에 링크를 통해 블록도로 설명해주신 부분이 쉽게 이해가 됐는데요. 관련 링크 좀 공유해주실 수 있을까요?
-
미해결코딩테스트 [ ALL IN ONE ]
동적배열 8:23
안녕하세요. 그림부분에서 이해가 가지않아 질문 드립니다.a =[1,2,3] 으로 초기화를하면 array는 0,1,2 즉 배열 그림이 3칸([][][])만 있어야 하는게 아닌가요? 하지만 강의의 그림에서는 [1][2][3][][] 으로 0,1,2,3,4 까지 그려져 있습니다. (size가 3인데 말이죠)a.append(4) 를 했을때, 동적배열은 array로 구현이 돼어있기때문에 random access 가 가능하여 마지막 index를 찾을 수 있다고 하셨는데, 선언및 초기화a = [1,2,3] // 그림 -> [1][2][3]접근 a[0] // O(1) 수정 a[1] = 9 // 그림 [1],[9],[3]추가 a.append(4) // 이때 Resizing 이 일어나/* 그림 [1][9][3] // 값을 옮긴 후 삭제[1][9][3][4][][] // 복잡도 O(n) */의 모양이 돼야하는게 아닌가요?즉, 궁굼한 점은 선언 및 초기화 할때 배열의 size 는 3인데그림의 배열 size는 [][][][][] 5칸이냐는 것입니다.
-
미해결코딩테스트 [ ALL IN ONE ]
연결리스트(Linked List)-1 전반적인 코드
서론class Node: def __init__(self, value=0, next = None): self.value = value self.next = next first = Node(1) second = Node(2) third = Node(3) first.next = second second.next = third first.value = 6 위 코드는 연결리스트-1 강의에 등장하는 코드입니다.first = Node(1)first.next = secondfirst.value = 6위 3개의 코드 모두 "=" 이라는 할당 연산자를 통해서 데이터를 변수에 저장하고 있는데요. "first가 Node(1)을 가리킨다""first.next에는 주소가 저장된다.""first.value에는 6이 저장된다." 뭔가 여기서 저는 뇌에서 뭔가 이상한데(?)라고 느겼습니다. first, first.next, first.value 라는 변수에모두 "="이라는 동일한 할당 연산자를 사용함에도 불구하고,"가리킨다" "값을 저장한다" "주소를 저장한다"파이썬이 천재인가? 동일한 할당("=")연산자인데,어쩔 때는 알아서 가리키고,어쩔 때는 알아서 주소을 저장하고,또 어쩔 때는 값를 저장한다 질문1위 그림을 토대로 말씀드리자면,1."가리킨다" → D관점2."값을 저장한다" → C관점3."주소를 저장한다" → A관점결국엔 다 "동일한 의미"를 다르게 표현하고 있다는 사실입니다. first= Node(1)실제로는 first에 Node(1)의 번지인 100번지(가정)가 저장되어100번지에 저장되어 있는 Node(1)객체를 가리키는 것이고,second=Node(2)실제로는 second에 Node(2)의 번지인 200번지(가정)가 저장되어200번지가 저장되어 있는 Node(2)객체를 가리키는 것이고,first.next = secondsecond에 저장되어 있는 200번지즉 주소를 first.next에 저장해서결국엔 first.next가Node(2)를 가리키게 되는 것이고, first.value에 600번지(가정)가 저장되어 6을 가리키고 있으나C관점에서 "first.value에는 6이 저장"되어 있다라고 표현하고 있는 것 같습니다. 제가 이해한 게 맞나요??결국 다 동일한 의미인 거죠? <질문의도>분명히 저와 같은 생각하시는 분이 계실 것으로생각됩니다.저도 연결 리스트 처음 배울 때파이썬이 천재인가어쩔 때는 "값"을 저장하고,어쩔 때는 "가리킨다"라고 표현하고,어쩔 때는 "주소"를 저장한다라고 표현하고,이 내용이 다른 분들한테 조금이라도 도움이 됐으면좋겠습니다.
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
연결리스트 질문입니다.
선생님 안녕하세요. 질문이 있습니다. 1️⃣ insertAt() 함수에서 에러 처리할 때if(index > this.count) 마지막 인덱스에 데이터가 삽입이 될 수 있어서 초과로 한걸까요?deleteAt(), getNodeAt() 함수에서 에러 처리할 때if(index >= this.count) 마지막 인덱스가 없기 때문에 이상으로 한걸까요? 헤깔려서 정리하면서 여쭤봅니다.2️⃣ insert 함수 만들 때와 다르게 delete, getNode 함수 만들 때 return 한 이유가 궁금합니다. 강의를 반복해서 듣는데. 헤깔리는게 자꾸 생기네요ㅜ..ㅎ
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
선생님 안녕하세요~~ 연결리스트 중 질문입니다.
안녕하세요. 선생님! 손코딩하면서 연결리스트를 다시 듣고 있습니다. 기본 개념인 것 같은데 let list = new LinkedList()말씀하시면서 인스턴스화 했다고 하셨는데 인스턴스화가 무엇인지 궁금합니다. 감사합니다.
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요! 큐 관련 질문입니다.
선생님 안녕하세요. deleteAt 를 만들 때 마지막노드(tail) 제거 하는 부분에서index == this.count -1마자믹 노드인데 this.count-1 하는 이유는 무엇일까요?비전공자로 개발에 도전하고 있는데.. 자료구조 어렵네요ㅜ