[백준]10816.숫자카드2/Java

seeun·2021년 8월 10일
0

BaekJoon

목록 보기
1/10
post-thumbnail

📃숫자카드2 링크


👩🏻‍💻풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class numCard {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		String[] card = br.readLine().split(" ");
		Map<Integer, Integer> cardCount = new HashMap<>();
		for(int i = 0; i < N; i++ ) {
			int num = Integer.parseInt(card[i]);
			if(cardCount.containsKey(num)) {
				cardCount.replace(num, cardCount.get(num) + 1);
			}
			else {
				cardCount.put(num, 1);
			}
		}
		
		StringBuilder answer = new StringBuilder();
		int M = Integer.parseInt(br.readLine());
		String[] card2 = br.readLine().split(" ");
		for(int i = 0; i < M; i++) {
			int num = Integer.parseInt(card2[i]);
			if(cardCount.containsKey(num) ) {
				answer.append(cardCount.get(num));
			}
			else {
				answer.append(0);
			}
			if(i < M-1) {
				answer.append(" ");
			}
		}
		System.out.println(answer);
	}
}
  • 해시맵에 숫자카드의 숫자를 키, 개수를 value로 저장
    -> ex. {2=1, 3=2, 6=1, 7=1, -10=2, 10=3}
  • 만든 해시맵의 키 중 주어진 정수와 같은 숫자가 있다면 value 값을 answer에 append
  • 키 중 주어진 정수와 같은 숫자가 없다면 0 append
  • 마지막을 제외하고 " " 공백도 append

✔️StringBuilder

String의 문자열을 변경하면 새로운 String을 만들어 낸다. StringBuilder는 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 단점을 보완한 클래스이다. 즉, 같은 인스턴스 안의 문자열 필드 값을 추가하거나 변경할 수 있도록 되어있다. 원본 문자열을 바꿀 수 있는만큼 문자열을 다루는 메소드도 더 많이 포함되어 있다.

profile
🤹‍♂️개발 기록 노트

0개의 댓글