초기 코드
class Solution {
public int solution(String before, String after) {
char[] before_arr = before.toCharArray();
char[] after_arr = after.toCharArray();
Arrays.sort(before_arr);
Arrays.sort(after_arr);
System.out.println(after_arr);
System.out.println(before_arr);
System.out.println(before_arr.equals(after_arr));
return (before_arr.toString().equals(after_arr.toString()) ? 1 : 0);
}
}
처음 코드는 위와 같았다.
두 문자열을 char[]로 변환한 후 sort 과정을 거쳐 같을 경우 1을 return하고 다를 경우 0을 return 하는 코드를 구성하였다.
결과 값은 다음과 같았다.
분명 두 배열은 같은 성분을 가지고 있지만 같지 않다고 나오는 것이다.
성분이 같은 두 배열의 비교
찾아보니 배열과 객체는 성분이 같다고 하더라도 주소값이 다르면 다르다고 판단한다는 것을 알았다.
위와 같이 배열 객체에 toString을 사용해 주소값을 출력해 보니 두 배열의 주소값이 다른 것을 확인했고 그로 인해 두 배열이 다르다는 것을 확인할 수 있었다.
배열의 비교 방법
class Solution {
public int solution(String before, String after) {
char[] before_arr = before.toCharArray();
char[] after_arr = after.toCharArray();
Arrays.sort(before_arr);
Arrays.sort(after_arr);
return (new String(before_arr).equals(new String(after_arr)) ? 1 : 0);
}
}
두 배열을 비교하기 위해서 두 배열을 성분으로 가지는 String 객체를 만들어 비교하기로 하였다.
결과값은 원하는 대로 1이 나오는 것을 확인할 수 있었다.
'Algorithm & Data Structure' 카테고리의 다른 글
[백준] 베르트랑 공준(4948번) - Python (2) | 2022.12.27 |
---|---|
[프로그래머스] 등수 매기기 (0) | 2022.11.29 |
[백준] 구간성분(10840번) - 해싱 (0) | 2022.10.10 |
[Today I Learned] 알고리즘 기초와 배열 (0) | 2022.09.28 |
[백준] 그룹단어체커 (1316번) - Python (1) | 2022.09.28 |