[입문] A로 B 만들기
문제 설명
문자열 before
와 after
가 매개변수로 주어질 때, before
의 순서를 바꾸어 after
를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 <
before
의 길이 ==after
의 길이 < 1,000 before
와after
는 모두 소문자로 이루어져 있습니다.
입출력 예
before | after | result |
---|---|---|
“olleh” | “hello” | 1 |
“allpe” | “apple” | 0 |
입출력 예 설명
입출력 예 #1
- “olleh”의 순서를 바꾸면 “hello”를 만들 수 있습니다.
입출력 예 #2
- “allpe”의 순서를 바꿔도 “apple”을 만들 수 없습니다.
문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.*;
class Solution {
public int solution(String before, String after) {
HashMap<Character, Integer> map1 = new HashMap<>();
HashMap<Character, Integer> map2 = new HashMap<>();
for (int i = 0; i < before.length(); i++) {
char bf = before.charAt(i);
char af = after.charAt(i);
map1.put(bf,map1.getOrDefault(bf,0)+1);
map2.put(af,map2.getOrDefault(af,0)+1);
}
for (Map.Entry<Character, Integer> entry : map1.entrySet()) {
int val1 = entry.getValue();
int val2 = map2.getOrDefault(entry.getKey(), 0);
if (val1 != val2) {
return 0;
}
}
return 1;
}
}
댓글남기기