문제 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
어떻게 로직을 짤까하다가.. 그냥 문자열이 1개라도 다르면 0을 return 하면 되니.. hashmap을 사용했다..
( 분명 더 쉬운 로직이 있을텐데 이거먼저 생각났음 )
풀고나서 다른사람 풀이보면서 내가 원하는 로직이 거기있었다 . .( 왜 생각못함 )
import java.util.*;
import java.util.HashMap;
class Solution {
public int solution(String before, String after) {
int answer = 1;
HashMap<Character, Integer> map=new HashMap<>();
for(char x:before.toCharArray()){
map.put(x,map.getOrDefault(x,0)+1);
}
for(char x:after.toCharArray()){
if(!map.containsKey(x)||map.get(x)==0) return 0;
map.put(x, map.get(x)-1);
}
return answer;
}
}
< 다른 사람 풀이 >
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
char[] a = before.toCharArray();
char[] b = after.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
return new String(a).equals(new String(b)) ? 1 :0;
}
}
배열에 담고.. 정렬해서 같으면 1, 다르면 0 리턴...
'📚 코딩테스트 > 백준 & 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA]Level 0 : 문자열 정렬하기(1) (0) | 2022.10.21 |
---|---|
[프로그래머스][JAVA]Level 0 : 문자열 정렬하기(2) (0) | 2022.10.21 |
[프로그래머스][JAVA]Level 1 : 두개 뽑아서 더하기 (0) | 2022.10.17 |
[프로그래머스][JAVA]Level 1 : 나누어 떨어지는 숫자 배열 (1) | 2022.10.14 |
[프로그래머스][JAVA]Level 1 : 이상한 문자 만들기 (0) | 2022.10.14 |