☑️ 문제: 숫자 카드
https://www.acmicpc.net/problem/10815
- 문제 풀이 고민
- 완전탐색으로 풀면 N*M = (5 * 10^5)^2 이기 때문에 안 된다.
 - 어떤 풀이 방법이 있을지 고민해보다 아래 풀이들이 떠올랐다.
- 첫번째: Set 자료구조 사용해서 풀기
 - 두번째: 정렬 후, 이분탐색하기
 - 세번째: 2*10^7 크기의 인덱스 배열을 활용해서 풀기
 
 
 
☑️ 풀이1: Set 자료구조 사용해서 풀기
import java.util.*;
public class Main {
  public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      Set set = new HashSet<Integer>();
      
      int N = sc.nextInt();
      for (int i = 0; i < N; i++) {
          set.add(sc.nextInt());
      }
      
      StringBuilder answer = new StringBuilder(""); // String을 쓸 경우, 시간 초과.
      int M = sc.nextInt();
      for (int i = 0; i < M; i++) {
          int num = sc.nextInt();
          answer.append(set.contains(num) ? 1 : 0);
          answer.append(" ");
      }
      
      System.out.println(answer); // print를 여러번 부르면 시간이 걸림.
  }
}
과거에 이미 풀었던 문젠데, 그 때의 나는 세번째 방식으로만 풀어보았더라.
나머지는 다른 해야 할 일이 끝나고 여유가 생기면 도전해보고,
각 풀이의 복잡도를 계산해보자.
'TIL (Today I Learned)' 카테고리의 다른 글
| 99클럽 코테 스터디 15일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.06 | 
|---|---|
| 99클럽 코테 스터디 14일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.04 | 
| 99클럽 코테 스터디 12일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.03 | 
| 99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.01 | 
| 99클럽 코테 스터디 10일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.01 |