TIL (Today I Learned)

99클럽 코테 스터디 14일차 TIL + 오늘의 학습 키워드

남 희 2024. 8. 4. 23:37

☑️ 문제: 숫자 카드2

https://www.acmicpc.net/problem/10816

 

☑️ 풀이1: HashMap 사용하기

import java.util.*;

public class Main {
  public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      Map<Integer, Integer> map = new HashMap<>();
      
      // 1. HashMap에 상근이가 가진 숫자카드 정보 입력: (카드 번호, 개수)
      int N = sc.nextInt();
      for (int i = 0; i < N; i++) {
          int num = sc.nextInt();
          map.put(num, map.getOrDefault(num, 0) + 1);
      }
      
      // 2. 주어진 M개의 수에 대한 숫자 카드를 몇 개 가지고 있는지 출력
      StringBuilder answer = new StringBuilder("");
      int M = sc.nextInt();
      for (int i = 0; i < M; i++) {
          int num = sc.nextInt();
          answer.append(map.containsKey(num) ? map.get(num) : 0);
          answer.append(" ");
      }
      
      System.out.println(answer);
  }
}

 

확인해보니, 이분탐색 유형으로 풀 수 있다는 사실을 알게 되었다.

이분탐색으로도 풀어봐야겠다.