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 |