CodingTest

프로그래머스 - A로 B 만들기

쩡선영 2023. 1. 25. 22:38

문제설명


문자열 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 메소드를 사용할 생각을 전혀 하지 못하였다

이렇게 하면 코드가 더욱 깔끔해 질 수 있구나...

한 수 배워갑니다..ㅠㅠㅠㅠ