jju_developer 2022. 12. 11. 00:12
728x90

<코딩 테스트>

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

 

<나의 풀이 과정>

처음에 문제를 풀었을때는 단순히 문자의 배열만 바꿔서 비교하였지만,

사실상, before에 주어지는 문자열과 after에 주어지는 문자열 하나하나가 모두 동일하다면

같은 문자를 만들 수 있다는 것을 생각하였고,

각각의 문자열을 배열에 저장 후, sort 해준 뒤 String 배열이 아닌 String 문자로 비교 한 값을  return 하도록 코딩하였습니다.

 

<나의 풀이 코드>

 

import java.util.Arrays;
class Solution {
    public int solution(String before, String after) {
        int answer = 0;
		String[] beforArr = before.split("");
		String[] afterArr = after.split("");

		Arrays.sort(beforArr);
		Arrays.sort(afterArr);
		String strinA = "";
		String strinB = "";

		for (int i = 0; i < afterArr.length; i++) {
			strinA += afterArr[i];
			strinB += beforArr[i];
		}
		if (strinA.equals(strinB))
			return answer = 1;
		else
			return answer = 0;
	}
}

 

<다른사람 풀이 1>

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;
    }
}

 

<다른사람 풀이 2>

class Solution {
    public int solution(String before, String after) {
        for(int i = 0; i < before.length(); i++){
            after = after.replaceFirst(before.substring(i,i+1),"");
        }
        return after.length() == 0? 1: 0;
    }
}

 

 

 

728x90