-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
안녕하세요 런타임에러 뜨는 이유좀 알수 있을까요 ??
22.11.14 03:51 작성 조회수 457
0
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<Character,Integer> map1 = new HashMap<>();
String str1 = sc.next();
String str2 = sc.next();
String answer = "YES";
for (char i : str1.toCharArray()){
map1.put(i,map1.getOrDefault(i,0)+1);
}
for (char i : str2.toCharArray()){
if (!map1.containsKey(i)|| map1.get(i)==0) {
answer="NO";
}
map1.put(i,map1.get(i)-1);
}
System.out.println(answer);
}
}
답변을 작성해보세요.
0
김태원
지식공유자2022.11.24
안녕하세요^^
if (!map1.containsKey(i)|| map1.get(i)==0) {
answer="NO";
}
참이되면 answer에 "NO"를 넣고 break를 하셔야 합니다.
밑에서 map1.put(i,map1.get(i)-1);
하면 안됩니다. 즉 키가 없는데 그 키값을 뺀다는 것은 오류입니다.
답변 1