몇 가지 보충 설명 드립니다!! 0:21 여기서 "데이터 조회(search)가 List 보다 빠름"이라고 설명을 했는데요, 'ADT 관점에서' 설명을 할 때는 사실 이런 언급은 해서는 안됩니다. 왜냐하면, ADT는 구현은 다루지 않고 동작이나 특성만 다루는 개념인데, "데이터 조회가 Set이 더 빠르다"는 것은 구현을 해야만 알 수 있는 부분이라 앞 뒤가 맞지 않죠. 그럼에도 이런 언급을 한 것은, 흐름 상 '서두에 같이 설명하는 것이 좋겠다' 싶어서 이 타이밍에 언급하게 됐습니다. 참고 부탁드려요~ 16:20 List와 Set의 데이터 조회 속도를 비교할 때, 여기서 '조회'의 의미는 데이터를 '직접' 찾을 때의의미로 사용을 했어요. 그런데 인덱스를 통해서 데이터를 조회하는 것 또한 데이터 조회라고 볼 수 있습니다. 그리고 array list는 인덱스를 통해서 데이터를 조회할 때 시간복잡도가 O(1)로 매우 빠릅니다. 결국 이 부분은 제가 워딩을 미흡하게 한 부분이고 그래서 오해의 소지를 만들게 된 부분입니다ㅠㅠ 그래서 여기서 '조회'의 의미는'인덱스를 통한 조회가 아닌 직접 데이터를 찾을 때의 조회'의 의미이고요, 영상 내용을 다시 정리하면, 'list에서 특정 데이터가 존재하는지 찾거나, 아니면 특정 데이터를 삭제하거나 할 때의 조회 속도는 set에 비해 상대적으로 느립니다.' @알파기버 님의 댓글 덕에 발견하게 됐습니다. 감사합니다 👍
오… 너무 재밌어요… 해시테이블도 보고 왔는데 둘 다 꿀잼 CPython에서 유효 데이터 기준으로 shrink to fit, resize 한다길래 앞에 첨부해두신 구조체 보니까 유효 데이터 개수를 따로 저장하네요 구현체까지 보여주셔서 바로바로 확인할 수 있어서 정말 좋았습니다 언어별 구현 비교해주시는 것도 너무 좋아요
반갑습니다~! 답변을 드리자면 우선 여기서 list는 arraylist를 말씀하셨던 것이라고 가정하고 말씀드리겠습니다. hash table의 get과 list의 get은 같은 get이 아닙니다. 리스트의 get은 파라미터로 인덱스를 받죠. 즉, 리스트에서 몇 번째 위치에 있는 데이터를 가져오라는 의미구요, 해시테이블에서 get은 파라미터로 key를 받습니다. 그 key에 대응하는 value를 가지고 오라는 의미입니다. 영상에서 조회의 의미는 인덱싱의 의미가 아니라 데이터 자체를 찾는 의미로 사용한 것이었는데, 질문 주신 댓글 보고 다시 영상을 보니, 보기에 따라 오해의 소지가 충분히 있을 것 같아요~! 질문 주셔서 너무 감사합니다! 댓글로 이 부분은 보충 설명을 해둘게요 :)
몇 가지 보충 설명 드립니다!!
0:21 여기서 "데이터 조회(search)가 List 보다 빠름"이라고 설명을 했는데요, 'ADT 관점에서' 설명을 할 때는 사실 이런 언급은 해서는 안됩니다.
왜냐하면, ADT는 구현은 다루지 않고 동작이나 특성만 다루는 개념인데, "데이터 조회가 Set이 더 빠르다"는 것은 구현을 해야만 알 수 있는 부분이라 앞 뒤가 맞지 않죠.
그럼에도 이런 언급을 한 것은, 흐름 상 '서두에 같이 설명하는 것이 좋겠다' 싶어서 이 타이밍에 언급하게 됐습니다.
참고 부탁드려요~
16:20 List와 Set의 데이터 조회 속도를 비교할 때, 여기서 '조회'의 의미는 데이터를 '직접' 찾을 때의의미로 사용을 했어요.
그런데 인덱스를 통해서 데이터를 조회하는 것 또한 데이터 조회라고 볼 수 있습니다.
그리고 array list는 인덱스를 통해서 데이터를 조회할 때 시간복잡도가 O(1)로 매우 빠릅니다.
결국 이 부분은 제가 워딩을 미흡하게 한 부분이고 그래서 오해의 소지를 만들게 된 부분입니다ㅠㅠ
그래서 여기서 '조회'의 의미는'인덱스를 통한 조회가 아닌 직접 데이터를 찾을 때의 조회'의 의미이고요,
영상 내용을 다시 정리하면, 'list에서 특정 데이터가 존재하는지 찾거나, 아니면 특정 데이터를 삭제하거나 할 때의 조회 속도는 set에 비해 상대적으로 느립니다.'
@알파기버 님의 댓글 덕에 발견하게 됐습니다. 감사합니다 👍
진심으로 감사합니다 선생님 .. 정말 도움이 많이 돼요
오늘도 이 영상으로 공부하며 출근합니당 😘
크~ 하루를 여는 아침 영상이군요 ㅎㅎ
@@ezcd 영상으로 공부하며 퇴근합니당
@@anguejin0024 ㅋㅋㅋㅋ 출퇴근을 함께 하고 있군요 ㅎㅎ
와 해쉬셋도 내부적으로 해쉬맵으로 이루어져있다니 영상 감사합니다!
오… 너무 재밌어요… 해시테이블도 보고 왔는데 둘 다 꿀잼
CPython에서 유효 데이터 기준으로 shrink to fit, resize 한다길래 앞에 첨부해두신 구조체 보니까 유효 데이터 개수를 따로 저장하네요 구현체까지 보여주셔서 바로바로 확인할 수 있어서 정말 좋았습니다
언어별 구현 비교해주시는 것도 너무 좋아요
쉬운코드님 강의들은 이해가 정말 잘되네요ㅎㅎ 항상 감사드려요:)
크 채널이름값 하려고 열심히 하고 있습니다 ㅎㅎ
칭찬의 말씀 감사합니다!
자주 놀러오셔용 :)
이 영상도 너무 잘보고 갑니다! 자료구조 공부하는데 선생님들 영상이 너무 큰 도움이 되네요. 연말 마무리 잘하시구, 다른 영상들도 감사히 보겠습니다 :)
늘 따뜻한 응원의 메시지 남겨 주셔서 정말 감사합니다 ㅠㅠ
덕분에 포근한 연말이 될 것 같아요~!
JM님도 올 한 해 마무리 잘하시구요, 저도 꾸준히 좋은 영상으로 응원할게요 :)
set (중복허용안됨, 순서보장안됨) 을 써야 하는 경우가 아니라면
리스트를 쓰자...메모리가 절약된다..속도가 아~주 약간 느릴뿐....
고맙습니다.
크~! 깔끔하게 정리해주셨네요 :) 최고십니다~!
안녕하세요. 질문 좀 남겨도 될까요? 같은 시간복잡도 O(1)인데 hashTable을 이용한 get이 List의 get보다 빠른 이유가 무엇인가요?
반갑습니다~! 답변을 드리자면
우선 여기서 list는 arraylist를 말씀하셨던 것이라고 가정하고 말씀드리겠습니다.
hash table의 get과 list의 get은 같은 get이 아닙니다.
리스트의 get은 파라미터로 인덱스를 받죠. 즉, 리스트에서 몇 번째 위치에 있는 데이터를 가져오라는 의미구요,
해시테이블에서 get은 파라미터로 key를 받습니다. 그 key에 대응하는 value를 가지고 오라는 의미입니다.
영상에서 조회의 의미는 인덱싱의 의미가 아니라 데이터 자체를 찾는 의미로 사용한 것이었는데,
질문 주신 댓글 보고 다시 영상을 보니, 보기에 따라 오해의 소지가 충분히 있을 것 같아요~!
질문 주셔서 너무 감사합니다!
댓글로 이 부분은 보충 설명을 해둘게요 :)
감사합니다. 정말 쉬운코드에 맞게 잘 설명해 주시네요 ^^ ㅋ 한가지 아쉬운 부분은 말씀 하실때 약간 급한 느낌 ? 좀더 여유 가지고 설명해 주신다면 지금도 엄청 좋지만 더더 좋을 거 같습니다. 항상 감사합니다 !
크~~! 좋게 봐주셔서 감사합니다 :)
피드백 주신 부분은 적절하게 잘 반영해 보도록 하겠습니다 👍
오늘 하루도 즐거운 하루 되세요 ~!
오늘은 set부터 이진트리까지봤는데 진짜 보면 볼수록 영상 퀄에 감탄이 나오네요! 잘 배웟습니다!
크~~ 칭찬 감사합니다!! 영상을 꾸준히 봐주신 것도 감사합니다 :) 계속해서 좋은 영상으로 인사드릴게요 ~!