코딩 테스트 연습: 해시와 탐색 알고리즘 문제 풀이
|
1 min read
프로그래머스와 백준의 주요 문제들을 풀며 익힌 해시(Hash)와 탐색(DFS/BFS) 알고리즘의 핵심 로직과 풀이 전략을 정리합니다.
1. 해시 (Hash): 폰켓몬 문제
- 문제 요약: N마리의 폰켓몬 중 N/2마리를 선택할 때, 가장 많은 종류를 선택하는 방법.
- 핵심 로직: 중복을 제거한 종류의 수(이용)와 선택 가능한 수(N/2)를 비교하는 것이 포인트입니다.text
setpythondef solution(nums): nums_half = len(nums) // 2 unique_types = len(set(nums)) return min(nums_half, unique_types)
2. 탐색 (Search): 그리디와 완전 탐색
문제를 마주했을 때 어떤 알고리즘을 쓸지 결정하는 '설계' 단계가 가장 중요함을 배웠습니다.
- 그리디: 매 순간 최선의 선택을 하는 것이 전체의 최선이 되는 경우.
- 완전 탐색: 가능한 모든 경우의 수를 확인해야 할 때. (DFS/BFS 활용)
3. 깨달은 점
- 문제를 풀기 전 반드시 **수도코드(Pseudocode)**를 먼저 작성하여 로직을 검증해야 실수를 줄일 수 있습니다.
- 자료구조의 특성(의 중복 제거 등)을 잘 활용하면 코드가 훨씬 간결해집니다.text
set