문제
내가 작성한 오답
: before2.equals(after2) 이렇게 비교하면 두 배열의 참조(메모리 주소)를 비교하게 되어 항상 false를 반환한다.
import java.util.*;
class Solution {
public int solution(String before, String after){
char[] before2 = before.toCharArray();
char[] after2 = after.toCharArray();
Arrays.sort(before2);
Arrays.sort(after2);
return before2.equals(after2)?1:0;
}
}
내가 작성한 정답
import java.util.*;
class Solution {
public int solution(String before, String after){
char[] before2 = before.toCharArray();
char[] after2 = after.toCharArray();
Arrays.sort(before2);
Arrays.sort(after2);
return Arrays.equals(before2,after2)?1:0;
}
}
Arrays.equals() 메서드는 두 배열의 요소를 비교하여 동일한지를 확인한다.
다른 사람들의 정답
class Solution {
public int solution(String before, String after) {
for(int i = 0; i < before.length(); i++){
// before에서 인덱스 i에 해당하는 문자가 after에 존재하면
// after 문자열에서 그 문자를 처음 발견한 위치의 문자만 공백으로 대체
after = after.replaceFirst(before.substring(i,i+1),"");
}
return after.length() == 0? 1: 0;
}
}
String replaceFirst(String regex, String replacement)
주어진 문자열에서 첫 번째로 발견되는 특정 문자열을 다른 문자열로 교체
Share article