본문 바로가기
자바 알고리즘

21. 아나그램(해쉬)

by watergrace2u 2022. 9. 13.
반응형
SMALL

import java.util.*;

public class Main {

	public String solution(String a,String b) {
		String answer = "YES";
		HashMap<Character,Integer> map = new HashMap<>();
		for(char x: a.toCharArray()) {
			map.put(x, map.getOrDefault(x, 0)+1);
		}
        
		for(char x: b.toCharArray()) {
        // 해당하는 키가 없거나, 
        // -1을 하기도 전에 이미 0일 때 (갯수가 다르다는 뜻!)
			if(!map.containsKey(x) || map.get(x)==0) return "NO";
			map.put(x,map.get(x)-1);
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in); 	
		String a = kb.next();
		String b = kb.next();
		
		System.out.print(T.solution(a,b));	
	}
}

 

# 기억할 부분

 

for(char x: b.toCharArray()) {
if(!map.containsKey(x) || map.get(x)==0) return "NO";
map.put(x,map.get(x)-1);
}

 

이부분에서 if( map.containsKey(x) ) {} ~ 로 접근한 것이 아니라,

if( !map.containsKey(x) ) ~ 로 접근한 것 기억하기!!

 

 

 

반응형
LIST

댓글