작성
·
314
0
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public String solution(String str, String str2) {
String answer = "YES";
HashMap<Character, Integer> map = new HashMap<>();
for(char x : str.toCharArray()) {
map.put(x, map.getOrDefault(x, 0)+1);
}
for(char x : str2.toCharArray()) {
if(map.get(x)==0 || !map.containsKey(x)) { // 부정처리 중요
return "NO";
}
map.put(x, map.get(x)-1);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str2 = sc.next();
System.out.println(T.solution(str, str2));
sc.close();
}
}
강사님 코드랑 똑같이 채점사이트에 넣는데 런타임에러가 납니다. 왜그럴까요?
답변 1
0
안녕하세요 .
강사님은 아니지만 답변드립니다.if(map.get(x)==0 || !map.containsKey(x))
조건을 비교할때 map.get(x)
을 첫번째로 하셨기때문에 str2에 없는값을 첫번째로 비교 후 or연산자가 작동합니다.
그렇기때문에 NullPointerException 에러가 발생합니다.
저도 같은 문제로 오류를 해결하며 답변드립니다.
감사합니다.