728x90
https://www.acmicpc.net/problem/10816
처음 일반 배열로 풀었을때는 시간 초과가 났다.
HashMap을 사용해야 하는 문제였다.
HashMap + print로 출력하니 다시 시간초과.
HashMap + StringBuffer 을 사용해서 풀었다.
정답은 나오나 시간초과
package BAEKJOON.Silver.Ⅳ;
import java.util.Arrays;
import java.util.Scanner;
public class NO10816 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int [] arrA = new int [n];
for (int i = 0; i < n; i++) {
arrA[i] = sc.nextInt();
}
Arrays.sort(arrA);
int m = sc.nextInt();
int [] arrB = new int [m];
for (int i = 0; i < m; i++) {
arrB[i] = sc.nextInt();
}
int [] answer = new int [m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if(arrB[i] == arrA[j]) {
answer[i]++;
} else {
continue;
}
}
}
for (int i : answer) {
System.out.print(i + " ");
}
}
}
통과코드
package BAEKJOON.Silver.Ⅳ;
import java.util.HashMap;
import java.util.Scanner;
public class NO10816 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
HashMap<Integer, Integer> map1 = new HashMap<>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
int num = sc.nextInt();
map1.put(num, map1.getOrDefault(num, 0) + 1);
}
System.out.println(map1);
int m = sc.nextInt();
for (int i = 0; i < m; i++) {
int num = sc.nextInt();
if (map1.get(num) == null) {
sb.append(0).append(" ");
} else {
sb.append(map1.get(num)).append(" ");
}
}
System.out.println(sb);
}
}
728x90
'Algorithm & SQL > BAEKJOON' 카테고리의 다른 글
백준 JAVA 11651 좌표 정렬하기2 (0) | 2022.08.11 |
---|---|
백준 JAVA 11650 좌표 정렬하기 (0) | 2022.08.11 |
백준 JAVA 15829 Hashing (0) | 2022.08.10 |
백준 JAVA 1436 영화감독 숌 (0) | 2022.08.10 |
백준 JAVA 1181 단어 정렬 (0) | 2022.08.09 |
댓글