
내 풀이(런타임에러)
import java.util.HashMap;
import java.util.Scanner;
public class HashMap_02 {
public static void main(String[] args) {
// 길이가 같은 두 문자열이 같은 구성인지 판단하는 문제
// 1. 테스트케이스 String을 2개 받는다.
// 2. 답을 출력할 변수 String을 만든다.
// 3. hashmap을 만든다.
// 4. forEach문을 돌려 key, value값을 넣는다. 문자 하나당 1씩 추가한다.
// 5. 다시 forEach문을 돌려서 이번에는 문자 하나당 1씩 빼준다.
// 6. if문을 돌려 0이 아니거나 밸류값을 갖고 있다면 No, 아니면 yes를 출력한다.
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str2 = sc.next();
String answer = "YES";
HashMap<Character, Integer> map = new HashMap<>();
for (char ch : str2.toCharArray()) {
map.put(ch, map.getOrDefault(ch, 0)+1);
}
for (char ch : str.toCharArray()) {
if (!map.containsKey(ch) || map.get(ch) == 0) {
answer = "NO";
}
map.put(ch, map.get(ch)-1);
}
System.out.println(answer);
}
}
다시 풀기
import java.util.HashMap;
import java.util.Scanner;
public class HashMap_02 {
public static void main(String[] args) {
// 길이가 같은 두 문자열이 같은 구성인지 판단하는 문제
// 1. 테스트케이스 String을 2개 받는다.
// 2. 답을 출력할 변수 String을 만든다.
// 3. hashmap을 만든다.
// 4. forEach문을 돌려 key, value값을 넣는다. 문자 하나당 1씩 추가한다.
// 5. 다시 forEach문을 돌려서 이번에는 문자 하나당 1씩 빼준다.
// 6. if문을 돌려 0이 아니거나 밸류값을 갖고 있다면 No, 아니면 yes를 출력한다.
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str2 = sc.next();
String answer = "YES";
HashMap<Character, Integer> map = new HashMap<>();
for (char ch : str.toCharArray()) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
for (char ch : str2.toCharArray()) {
if (!map.containsKey(ch) || map.get(ch) == 0) {
answer = "NO";
break;
}
map.put(ch, map.get(ch) - 1);
}
System.out.println(answer);
}
}
chat-GPT가 풀어주기
import java.util.HashMap;
import java.util.Scanner;
public class HashMap_02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str2 = sc.next();
String answer = "YES";
if (str.length() != str2.length()) {
answer = "NO";
} else {
HashMap<Character, Integer> map = new HashMap<>();
for (char ch : str.toCharArray()) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
for (char ch : str2.toCharArray()) {
if (!map.containsKey(ch) || map.get(ch) == 0) {
answer = "NO";
break; // Terminate the loop early if there's a mismatch
}
map.put(ch, map.get(ch) - 1);
}
// Check if any characters remain unmatched in str2
for (int value : map.values()) {
if (value != 0) {
answer = "NO";
break;
}
}
}
System.out.println(answer);
}
}
느낀점
break;을 안해줘서 틀린걸 계속 붙잡고 있었다니 너무 분하다..
GPT한테 물어본 첫 문제인데, 웃긴게 GPT가 풀어준 답도 틀렸다. 왜지??