반응형
https://www.acmicpc.net/problem/10815
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder output = new StringBuilder();
static StringTokenizer tokens;
static int N, M;
static int[] own = new int[20000000];
public static void main(String[] args) throws NumberFormatException, IOException {
N = Integer.parseInt(input.readLine());
tokens = new StringTokenizer(input.readLine());
for (int n = 0; n < N; n++) {
own[Integer.parseInt(tokens.nextToken())+10000000]++;
}
M = Integer.parseInt(input.readLine());
tokens = new StringTokenizer(input.readLine());
for (int m = 0; m < M; m++) {
int idx = Integer.parseInt(tokens.nextToken())+10000000;
if(own[idx] > 0) output.append(1).append(" ");
else output.append(0).append(" ");
}
System.out.println(output);
}
}
첫번째 시도 : 이중for문으로 하려고 했다. 그런데 생각해보니까 숫자가 꽤 커서 안될 것 같다는 생각이 들었다.
두번째 시도 : 입력받은 값을 인덱스로 사용해서 +1씩 해주고 나중에 확인할때 0보다 크면 이미 존재한다는 의미니까
이걸 이용해볼까? 하고 했는데 index out of bound. 이유는 음수를 생각못했다.
세번째 시도 : 배열의 index는 음수는 없으니까 최대값을 더해서 모두 양수로 만들어주었다. 그만큼 배열도 늘려주었다.
반응형
'코딩테스트 > 백준문제' 카테고리의 다른 글
[Java] 백준_16928_뱀과 사다리 게임 (0) | 2021.07.10 |
---|---|
[Java] 백준_10828_스택 (0) | 2021.05.25 |
[Java] 백준_2750_수 정렬하기 (0) | 2021.05.22 |
[Java] 백준_1920_수찾기 (0) | 2021.05.21 |
[Java] 백준_14501_퇴사 (0) | 2021.05.20 |