문제설명
문자열 before와 after가 매개변술도 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution함수를 완성해보세요.
<제안사항>
1) 0< before의 길이 == after의 길이 < 1,000
2) before와 after는 모두 소문자로 이루어져 있습니다.
내가 직접 짜본 풀이
import java.util.*;
class Solution {
public int solution(String before, String after) {
int answer = 0;
int cnt=0;
char before_arr[] = before.toCharArray();
char after_arr[] = after.toCharArray();
Arrays.sort(before_arr);
Arrays.sort(after_arr);
String result_b=Arrays.toString(before_arr);
String result_a=Arrays.toString(after_arr);
if(result_b.equals(result_a)) answer=1;
return answer;
}
}
코드 해설
1) toCharArray()를 사용하여 before_arr 배열과 after_arr 배열을 만들어 준다
2) 각 배열을 정렬해준 뒤
3) toString을 사용하여 문자열로 변환해준다
4) eqauls를 사용하여 result_b가 result_a와 같다면 answer을 1로 변환해준다
반성할 점
배열을 정렬 한 뒤 equals로 비교해줄 생각을 한번에 하지 못하였다ㅠㅠ
다른 사람의 풀이
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;
}
}
이렇게 삼항연산자 안에 new String 메소드를 사용할 생각을 전혀 하지 못하였다
이렇게 하면 코드가 더욱 깔끔해 질 수 있구나...
한 수 배워갑니다..ㅠㅠㅠㅠ
'CodingTest' 카테고리의 다른 글
프로그래머스 - 개미군단 (JAVA) (0) | 2023.01.27 |
---|---|
프로그래머스 - 팩토리얼 (JAVA) (0) | 2023.01.26 |
프로그래머스 - 인덱스 바꾸기 (JAVA) (0) | 2023.01.19 |
프로그래머스 - 배열의 유사도 (JAVA) (0) | 2023.01.13 |
프로그래머스 - 문자열안에 문자열 (JAVA) (2) | 2023.01.12 |