728x90
반응형
● 문제
https://www.acmicpc.net/problem/1920
● 풀이
처음에는 boolean 배열을 100000 크기로 만들어서(boolean 배열의 default 값은 false) N개 정수의 index에 해당하는 배열 요소의 값을 true로 바꿔주고 M개 정수를 배열의 index로 찾아서 boolean 값이 true이면 1, false이면 0으로 설정하게 개발했다.
그런데 조건에서 정수의 범위가 int의 범위이므로 boolean 배열의 index의 길이를 넘어서므로 실패했고 검색 속도를 올리기 위해 TreeSet을 이용하는 방법으로 변경하였다.
● 소스
package acmicpc;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Set;
import java.util.TreeSet;
public class acmicpc1920 {
public static void main(String args[]) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out))) {
Set<Integer> set = new TreeSet<>();
int n = Integer.parseInt(reader.readLine());
String[] nStrArr = reader.readLine().split(" ");
for(int i=0; i<n; i++) {
set.add(Integer.parseInt(nStrArr[i]));
}
int m = Integer.parseInt(reader.readLine());
String[] mStrArr = reader.readLine().split(" ");
for(int i=0; i<m; i++) {
writer.append(String.valueOf(set.contains(Integer.parseInt(mStrArr[i])) ? 1 : 0) + "\n");
}
writer.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
728x90
반응형
'개발 > 백준알고리즘' 카테고리의 다른 글
11723번_집합_java (0) | 2023.08.06 |
---|---|
23972번_악마의 제안_java (0) | 2023.08.06 |
15726번_이칙연산_java (0) | 2023.08.06 |
2563번_색종이_java (0) | 2022.12.11 |
5597번_과제 안 내신 분..?_java (0) | 2022.12.08 |