본문 바로가기
개발 관련 공부/알고리즘

백준 10816 숫자카드2

by 슴새 2021. 8. 18.
반응형

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
	 
	public static void main(String[] args) {
	
		try{
	        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	        int n = Integer.parseInt(br.readLine());
	        
	        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(); 
	        int arr [] =new int [n];
			 
			StringTokenizer st = new StringTokenizer(br.readLine());
			for(int i = 0; i<n; i++) {
				arr[i]=Integer.parseInt(st.nextToken());	
				if((map.get(arr[i]))==null) map.put(arr[i],1);
				else map.put(arr[i],map.get(arr[i])+1);
			}
			 
			
		   int m = Integer.parseInt(br.readLine());
		   StringTokenizer st2 = new StringTokenizer(br.readLine());
		   StringBuilder sb=new StringBuilder();
		   for(int i=0;i<m;i++) {
					 
				  
				 int key=Integer.parseInt(st2.nextToken()); 
				 
				 if(map.get(key)==null) {		 
					 sb.append(0+" ");
				 }
				 else {
					 
					 sb.append(map.get(key)+" ");
				 }
			 }
		   System.out.println(sb);
	       
	        }catch(Exception e){
	        }
		}
	
	}

이분탐색 문제지만 hashmap으로 풀었다. 

시간 초과 안나려면 BufferedReader와 StringBuilder 둘 다 동원해야하는 문제 

공백을 기준으로 입력될때 BufferedReader을 쓰려면 StringTokenizer을 써야 한다는 걸 새로 알았다.

반응형

'개발 관련 공부 > 알고리즘' 카테고리의 다른 글

백준 1302 베스트셀러  (0) 2021.08.20
백준 9012 괄호  (0) 2021.08.19
백준 1920 수찾기  (0) 2021.08.17
백준 2178 미로찾기  (0) 2021.08.16
백준 11724 연결 요소의 개수  (0) 2021.08.13

댓글