문제 출처
https://www.acmicpc.net/problem/10816
접근 방식 및 풀이
- 분할정복으로 풀이하였다.
- 이진검색이나 Map 으로 하면 시간초과가...
- 아래 블로그 참고하였다.
https://yhk-0811.tistory.com/16?category=777689
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static final int UPPER_MAX = 10000000;
static final int MAX_ARRAY = (UPPER_MAX*2) +1;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cnt = Integer.valueOf(br.readLine());
int[] checkCards = new int[MAX_ARRAY];
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i <cnt ; i++) {
checkCards[Integer.valueOf(st.nextToken()) +UPPER_MAX]++;
}
cnt = Integer.valueOf(br.readLine());
st = new StringTokenizer(br.readLine());
for (int i = 0; i <cnt ; i++) {
sb.append(checkCards[Integer.valueOf(st.nextToken())+UPPER_MAX] + " ");
}
System.out.println(sb.toString());
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 1780번 종이의 개수 (0) | 2020.03.31 |
---|---|
[백준] 10815번 자바 숫자카드 (0) | 2020.03.31 |
[백준] 11662번 자바 민호와 강호 (0) | 2020.03.29 |