55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
연결리스트 관련 질문
let currentNode = this.head; for (let i = 0; i < index - 1; i++) { currentNode = currentNode.next; } newNode.next = currentNode.next; currentNode.next = newNode;currentNode = currentNode.next 이 부분이 잘 이해가 안갑니다.
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
hashFunctrion 메서드
hashFunction 메서드는 해시 테이블 자료구조에서 알고리즘이 들어가는 자료구조이군요.
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
HashTable set 메서드
안녕하세요. 영상 잘봤습니다 강의에서 set 메서드를 구현하실 때 연결리스트이 insertAt을 이용하셨는데 이 때 들어가는 파라미터는 0, new HashData 즉 key값을 0 추가 될 때 마다 head를 하겠다인데 클라이언트에서 연결리스트 인덱스까지 지정해서 할 필요는 없을까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
셋의 핵심
안녕하세요 영상 잘봤습니다. set에 핵심인 데이터가 증복되지 않게 저장하는데 이 핵심만 지키면 꼭 해세테이블을 이용해서 할 필요가있을까요? 배열이나 연결리스트로 하면은 안될까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
연결 리스트 삽입과 삭제 질문드립니다.
1분 50초 가량에 배열에서 데이터를 추가하려는 경우 overhead가 많이 발생하는데연결 리스트의 경우 중간에 데이터를 삽입하면 다음을 가리키는 노드만 바꿔주면 되기 때문에간단한 작업이라고 나와 있습니다.(데이터의 삭제도 마찬가지)---------------------------------------------------------------------------------------하지만 4분 9초 가량에 배열과 연결리스트의 삽입과 삭제를 비교하실 때배열은 위의 얘기와 동일한 말씀을 하셨는데( O(n)의 성능을 가진다. )연결리스트에서 "삽입하려는 노드까지 노드를 계속 타고 가야하기 때문에 O(n)의 성능을 가진다."라고 하셨는데 이 말씀은 "중간에 데이터를 삽입하면 다음을 가리키는 노드만 바꿔주면 되기 때문에 간단한 작업"이 말과 충돌한다고 생각합니다.---------------------------------------------------------------------------------------"삽입하려는 노드까지 노드를 계속 타고 가야하기 때문에 O(n)의 성능을 가진다."이 말은 데이터 참조에 해당하는 말이 아닌지 질문 드리고 싶습니다.---------------------------------------------------------------------------------------결국에 제 말이 틀린거라면즉, 연결리스트도 삽입과 삭제 시 O(n)의 성능을 가진다면 배열과 비교했을 때 연결리스트의 유일한 장점은처음에 크기를 지정해 주지 않아도 된다는 점 하나 뿐인 것인가요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
deque.addLast
addLst에서 구현할 때 insertAt으로 구현하셨는데 연결리스트에 구현한 insertLast로 구현하는게 더 직관적인거같은데 insertAt으로 한이유가 있을까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
스택과 큐의 필요성
스택은 FIFO 큐는 LIFO 구조인데 이 두개를 합친게 덱같네요. 이렇게되면 스택과 큐의 자료구조의 필요성이 잘 느껴지지 않습니다. 덱이 성능이 나쁘게 아니고 연결리스트 덕분에 삽입 제거가 O(1)의 성능이 나오는데 이렇게되면 굳이 스택과 큐를 써야하나싶은데 스택, 큐, 덱이 성능상의 차이점이 있을까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
강의 내용 포스팅
안녕하세요 자료구조 및 알고리즘 강의 잘 듣고 있습니다.다름이 아니라 제가 개인 블로그에 상업적인 목적 없이공부한 흔적을 남길려는 용도로 해당 강의 내용을 정리하려고 하는데혹시 강의 중간 중간에 나오는 그림이 필요할 경우 출처를 남긴 후사용해도 가능한지 여쭤보고 싶습니다.
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
큐에서 사용하는 연결리스트
영상 잘 봤습니다 ㅎㅎ 큐에서는 처음 들어온 값을 꺼내기 위해서 삭제를 하는데 여기서 성능상 안좋아서 이중연결리스트를 구현해서 사용한걸로 잘 이해됐습니다.근데 스택에서는 단방향 큐에서는 양방향 연결리스트를 사용했는데 그렇다면 연결리스트는 단방향 양방향이 나눠진 자료구조라고 봐야할까요? 아니면 기본적으로 양방향인걸까요? 나눠진 자료구조라하면 큐나 스택같이 개념적으로 구현을 위한 자료구조에서 적절한 연결리스트를 적용해서 구현하는걸까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
2:23 초 1이 나오기 위해서 이해가 안갑니다.
안녕하세요 감자님다름이 아니라 2:23 초에서 1이 가장먼저 나오기 위해서는 Que 특성상 4, 3, 2가 제거되야 1이 나오는거 아닌가요? 왜 1을 제거를 하는지 이해가 안갑니다.
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
javascript stack 다른 자료구조랑 사용해서 구현해야하는 자료구조일까요?
안녕하세요! 영상 잘봤습니다. 제가 알기론 javascript는 다른언어와 다르게 Stack이나 연결리스트를 따로 지원하지 않아 npm 라이브러리 이용하거나 구현해야하는걸로 알고있습니다. 다른 언에서의 자료구조를 안써봐서 잘 모르겠지만 구현해주신거에서는 연결리스트를 이용해서 stack을 구현하셨습니다 하지만 실질적으로 연결리스트 형식으로의 자료구조이고 그 위에 stack을 올려놓은게 맞는걸까요? stack 이라는 거는 결국에 연결리스트와 배열을 이용한 자료구조인거같아서요. 배열이나 연결리스트는 독자적으로 구현이 가능하다면 stack은 배열이나 연결리스트 등 있어야 구현이 가능한? 자료구조로 이해가되네요. 다른 언어에서도 마찬가지일까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
실제 node는 삭제가 아니네요?
deleteAt 이나 deleteLast 메서드는 실제적으로 삭제가 아닌 next가 없는 next로 이어지지 않는 마치 미아가된 노드라고 봐야될거같은데 맞을까요? 각 node는 랜덤 액세스처럼 index로 다이렉트로 접근이 불가능하니깐요.
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
삽입 정렬 - 1분 17초에서
여기서 선택 정렬은 가장 첫 번째 숫자인 4만 정렬되었다고 가정합니다. 선택 정렬은 정렬되지 않은 영역의 가장 앞에 있는 숫자를 하나씩 정렬된 영역의 적절한 위치에 ‘삽입’을 하며 정렬을 진행합니다. 삽입 정렬을 선택 정렬이라고 잘못 말씀하신건가용?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
버블 정렬 설명에 관한 질문입니다.
버블 정렬 4:41 초에 나오는 "4의 자리를 찾고...2의 자리를 찾는다" 는 설명에서 숫자를 내림차순으로 설명해주신건 큰 의미 없는 게 맞나요?아니면 네 번째 자리, 세 번째 자리, 두 번째 자리를 말씀하시는 건가요?아니면 배열 [3, 2, 1, 4] 에서 4는 이미 자리를 찾았으니 앞에서 부터 3 과 2를 찾는 다는 의미인가요?아니면 제가 이해하지 못하는게 있을까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
데이터 삽입 - tail에 삽입하는 경우
taill에 삽입하는 경우에tail은 index가 this.count가 아니라 this.count-1이여야 된다고 생각하는데 이해가 잘 안됩니다..
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
병합 정렬
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.병합 정렬의 시간복잡도가 O(nlogn)인 것은 이해가 가는데, 설명해주신 부분에서 n번의 비교가 필요하다는 부분에 대해 질문 드립니다! 정렬 하려는 배열을 반으로 나눠 길이가 1인 배열을 만드는 과정에서 시간복잡도 logn이 소요된다는 것은 이해했습니다.그런데 1 + 1 -> 2로 병합하는 과정에 2번의 비교,2 + 2 -> 4로 병합하는 과정에서 4번의 비교가 필요하다는 부분이 이해가 잘 되지 않습니다.최악의 경우에 1 + 1 -> 2 병합의 경우 1번 2 + 2 -> 4 병합의 경우 3번 ... 이렇게 n - 1번의 비교가 필요하다고 생각되는데 왜 n번의 비교가 되는지 궁금합니다!
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
insertAt() 관련
맨 앞에 데이터를 삽입하는 경우에newNode.next = this.head;this.head = newNode;이 부분에서새로운 노드의 next를 기존의 head와 연결하고head를 newNode로 바꾸면 newNode의 next가 자기자신을 가리키는거라고 생각되는데 어떻게 이해하면 좋을까요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
insertAt 코드 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. insertAt 메서드 안에서 아래의 코드 역할이 궁금합니다. 콘솔로 찍어보니 아래의 코드의 유무에 관계 없이 newNode.next는 null 인거 같은데 제가 무엇을 놓치고 있는지 잘 모르겠습니다.newNode.next = currentNode.next;
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
강의자료
강의자료는 어디서 받을 수 있나요?
- 해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
자바스크립트의 배열은 연결리스트로 구현된건가요?
자바스크립트의 배열은 다른 언어의 배열과 다르다고 하셨는데, 연결리스트로 구현되어있는건가요?