본문 바로가기

백준

[백준] 수 찾기 1920번

728x90

코드 힌트

  • 자료구조: HashMap을 사용하여 문자열의 존재 여부를 빠르게 확인하는 것이 핵심입니다.
  • 입출력 최적화: BufferedReader와 BufferedWriter를 사용하여 대량의 입력과 출력을 효율적으로 처리합니다.
  • 문자열 처리: 입력된 문자열을 공백으로 분리하여 배열에 저장하고, 이를 해시맵과 비교하여 결과를 도출합니다.

 


정답은 더보기 클릭

더보기
import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        // 입력을 효율적으로 받기 위해 BufferedReader 사용
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 출력을 효율적으로 하기 위해 BufferedWriter 사용
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 첫 번째 줄의 입력 (사용하지 않음)
        br.readLine();
        // 해시맵 생성, 문자열을 키로 하고, 값을 1로 설정
        HashMap<String, Integer> map = new HashMap<>();
        
        // 두 번째 줄의 입력을 받아 공백을 기준으로 분리하고 해시맵에 추가
        for (String s : br.readLine().split(" ")) {
            map.put(s, 1);
        }
        
        // 세 번째 줄의 입력 (사용하지 않음)
        br.readLine();
        // 네 번째 줄의 입력을 받아 공백을 기준으로 분리하여 배열에 저장
        String[] arr = br.readLine().split(" ");
        
        // 배열의 각 원소에 대해 해시맵에 존재하는지 확인 후 결과를 BufferedWriter에 기록
        for (int i = 0; i < arr.length; i++) {
            bw.write(map.getOrDefault(arr[i], 0) + "\n");
        }
        
        // 출력 버퍼를 비우고 닫기
        bw.flush();
        bw.close();
    }
}
728x90

'백준' 카테고리의 다른 글

[백준] 스택 2 28278번  (0) 2024.08.08
[백준] 그림 1926번  (0) 2024.07.31
[백준] 최대공약수 1850번  (0) 2024.07.28
[백준] 피보나치 함수 1003번  (0) 2024.07.27
[백준] 커트라인 25305번  (0) 2024.07.27