MinChur

코딩 테스트 연습: 해시와 탐색 알고리즘 문제 풀이

|
1 min read

프로그래머스와 백준의 주요 문제들을 풀며 익힌 해시(Hash)와 탐색(DFS/BFS) 알고리즘의 핵심 로직과 풀이 전략을 정리합니다.

1. 해시 (Hash): 폰켓몬 문제

  • 문제 요약: N마리의 폰켓몬 중 N/2마리를 선택할 때, 가장 많은 종류를 선택하는 방법.
  • 핵심 로직: 중복을 제거한 종류의 수(
    text
    set
    이용)와 선택 가능한 수(N/2)를 비교하는 것이 포인트입니다.
    python
    def 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
    의 중복 제거 등)을 잘 활용하면 코드가 훨씬 간결해집니다.