작성
·
281
·
수정됨
0
import java.util.HashMap;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
String a = sc.next();
String b = sc.next();
HashMap<Character,Integer> map = new HashMap<>();
String answer="YES";
for(char x: a.toCharArray()) {
map.put(x, map.getOrDefault(x,0)+1);
}
for(char x: b.toCharArray()) {
if(!map.containsKey(x) || map.get(x) == 0) answer="NO";
map.put(x, map.get(x)-1);
}
System.out.println(answer);
}
}
4-2입니다. 현재 이 상태인데, 한개의 테케에서 런타임오류가 뜨는데 테케가 뭔지 볼수가 없어 왜인지 원인을 못찾겠습니다. 도와주세요
답변 1
1
안녕하세요^^
!map.containsKey(x)
위에 코드가 참이 되면 x키가 없다는 것이므로 바로 return "NO"를 해서 함수를 종료해야 합니다.
종료하지 않고 map.put(x, map.get(x)-1);
코드를 진행하면 x키가 없기 때문에 map.get(x)값은 null값입니다. null에서 -1를 하면 에러가 납니다.
아 거기서 문제였군요 감사합니다!