본문 바로가기
Algorithm & SQL/BAEKJOON

백준 10816 JAVA 숫자 카드2

by YoonJong 2022. 8. 10.
728x90

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

처음 일반 배열로 풀었을때는 시간 초과가 났다.

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

댓글