Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 2776번] 암기왕 - Java //Wello Horld//
koucop
2020. 3. 2. 15:52
이번에는 BOJ의 2776번 문제 "암기왕" 을 풀어보도록 하자
입력으로 맨처음에 테스트 개수 T가 주어지고,
그 다음 줄부터 '수첩 1' 에 적어놓은 정수의 개수 N 이 입력으로 들어오고, 그 다음 줄에 '수첩1'에 적혀있는 정수들 N개가 주어진다.
그 다음 줄에는 '수첩 2'에 적어놓은 정수의 개수 M 이 입력으로 들어오고, 그 다음 줄에 '수첩2'에 적혀있는 정수들 M개가 주어진다.
출력으로 '수첩2'에 적혀있는 M개의 숫자 순서대로, '수첩1'에 있으면 1을, 없으면 0을 출력하면 되는 문제이다.
성공한 코드는 아래와 같다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
int N = Integer.parseInt(br.readLine());
HashMap<Integer, Boolean> map = new HashMap<Integer, Boolean>();
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j = 0; j < N; j++){
map.put(Integer.parseInt(st.nextToken()), true);
}
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int j = 0; j < M; j++){
if(map.containsKey(Integer.parseInt(st.nextToken()))){
bw.write("1\n");
}else {
bw.write("0\n");
}
}
}
bw.flush();
br.close();
bw.close();
}
}
문제 : https://www.acmicpc.net/problem/2776
2776번: 암기왕
연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, 연종이 하루 동안 본 정수들을 모두 ‘수첩1’에 적어 놓았다. 그것을 바탕으로 그가 진짜 암기왕인지 알아보기 위해, 동규는 연종에게 M개의 질문을 던졌다. 질문의 내용은 “X라는 정수를 오늘 본 적이 있는가?” 이다. 연종은 막힘없이 모두 대답을 했고, 동규는 연종
www.acmicpc.net
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.