728x90

https://school.programmers.co.kr/learn/courses/30/lessons/120886

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

 

 

 

 

 

풀이1)

import java.util.Arrays;
class Solution {
    public int solution(String before, String after) {
        int answer = 0;
        
        String[] b = new String[before.length()];
        String[] a = new String[after.length()];

        for(int i=0; i<before.length(); i++){
            b[i] = before.substring(i, i+1);
            a[i] = after.substring(i, i+1);
        }

        Arrays.sort(b);
        Arrays.sort(a);


        answer = Arrays.equals(a,b)?1:0;
        
        return answer;
    }
}

문자열 배열a와 문자열 배열b가 동일한지? Arrays.equals(a, b)배열 메서드를 사용하여 두개의 배열이 같은지 사용해서 확인하는 방법이 있고,

 

만약, Arrays.equals가 생각나지 않았을때 사용가능한 두번째 방법은

풀이2)

import java.util.Arrays;
class Solution {
    public int solution(String before, String after) {
        int answer = 0;

        String[] b = new String[before.length()];
        String[] a = new String[after.length()];

        for(int i=0; i<before.length(); i++){
            b[i] = before.substring(i, i+1);
            a[i] = after.substring(i, i+1);
        }

        Arrays.sort(b);
        Arrays.sort(a);

        String na = "";
        String nb = "";

        for(int j=0; j<a.length; j++){
            na += a[j];
            nb += b[j];
        }

        answer = na.equals(nb)?1:0;

        return answer;
    }
}

그냥 만들어준 문자열 배열 a,b에 들어있는 값을 하나씩 새로운 문자열인 na, nb에 넣어주어서 그냥 단순한 equals로 비교를 해보는 것이다.

 

문자열 배열 비교에 사용 가능한거 : Arrays.equals(비교하려는배열1, 비교하려는 배열2)

문자열 비교에 사용가능한거 : 비교하려는문자열1.equals(비교하려는 문자열2)라는 점을 알아두면 편하다.

728x90