해결된 질문
작성
·
28
1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 선생님!
수업을 듣다가 궁금한 점이 생겨 남깁니다.
hash table 파트에서 중복없이 해야 한다면 dictionary 로 하는 것보다 set()을 써서 하는게 더 편하지 않나요?
순열, 조합 파트에서 백트래킹 대신에 from itertools import permutations, combinations를 사용해서 풀어도 되나요? 혹시 순열, 조합, 부분집합 이외에 백트래킹을 활용해야 하는 코딩테스트 문제는 추가적으로 어떤 것이 있는지 궁금합니다!
답변 2
0
안녕하세요, CI1717177님.
네, 맞습니다. 단순히 ‘중복 없이 값이 존재하는지’만 확인하는 경우라면 set이 훨씬 간단하고 직관적일 수 있습니다. 하지만 본 강의에서는 hash table이 무엇이고, 어떻게 쓰고, 어떤 상황에서 활용할 수 있는지 보여드리는 것이 주요 목적이었기 때문에 가장 기본기인 dictionary를 사용한 것이라고 생각하시면 됩니다.
itertools 사용에 대하여
코딩테스트에서 별도 제약이 없다면 활용하셔도 문제 없습니다. 다만, 일부 기업이나 시험 환경에 따라 외부 라이브러리를 제한하거나, 문제 해결 과정을 직접 구현하는 능력을 보고 싶어 할 수 있습니다. 따라서 백트래킹을 손수 구현하는 방식도 충분히 연습해 두는 것이 좋습니다.
백트래킹이 필요한 다른 문제 유형
N-Queens
Sudoku Solve
순열/조합 외에도, 부분집합이나 특정 조건(예: 유효한 괄호 문자열 생성) 등이 포함된 문제
DFS/BFS와의 결합: 그래프나 트리에서 경로를 찾을 때, 조건에 따라 백트래킹이 들어갈 수도 있습니다.
답변이 되었길 바랍니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. cl1717177님.
질문 주신 라이브러리 활용 부분에 대해 답변 드리겠습니다.
Hash Table에서 중복 처리 시 set의 활용
파이썬의 set()
타입은 중복을 자동으로 제거해 주는 특성이 있어, 중복을 허용하지 않는 데이터 관리 시 편리합니다. dictionary
는 키-값 쌍을 관리하는 데 주로 사용되며, 만약 값의 중복을 관리하는 것이라면 set
이 더 적합합니다.
순열과 조합에서 itertools 활용
itertools
모듈의 permutations
와 combinations
를 사용하면 순열과 조합을 쉽게 구할 수 있습니다. 백트래킹을 직접 구현하지 않고도 간단히 문제를 풀 수 있어 효율적인 선택이 될 수 있습니다. 그러나 백트래킹은 단순 순열, 조합 문제 외에도 다음과 같은 상황에서 유용합니다:
유사한 질문으로는 아래의 질문을 참고해 보실 수 있습니다:
- two_sum dictionary 적용 관련 질문드립니다.
여기에서 중복 값을 처리하며 dictionary와 list 등을 활용하여 해결하는 방법을 논의하고 있습니다.
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.