문제 설명

문자열 beforeafter가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.


제한사항
  • 0 < before의 길이 == after의 길이 < 1,000
  • beforeafter는 모두 소문자로 이루어져 있습니다.

입출력 예
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;
    }
}

카테고리:

업데이트:

댓글남기기