주니어 기초 코딩공부/JAVA_programmers_코딩테스트
A로 B 만들기_programmers_lev00
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