문제
내가 작성한 정답
cclass Solution {
public int solution(int[] date1, int[] date2) {
int answer = 0;
for(int i=0; i<3; i++){
if(date1[i]<date2[i]) return 1;
else if(date1[i]>date2[i]) return 0;
}
return 0;
}
}다른 사람들의 정답
import java.time.LocalDate;
class Solution {
public int solution(int[] date1, int[] date2) {
LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);
// isBefore(), isAfter(), isEqual()
if (dateA.isBefore(dateB)) {
return 1;
} else {
return 0;
}
}
}
import java.util.*;
class Solution {
public int solution(int[] date1, int[] date2) {
return Arrays.compare(date1, date2) < 0 ? 1 : 0;
}
}
class Solution {
public int solution(int[] date1, int[] date2) {
int date1Days = getTotalDays(date1);
int date2Days = getTotalDays(date2);
return date1Days < date2Days ? 1 : 0;
}
public int getTotalDays(int[] date) {
int result = 0;
result += date[0] * 360;
result += date[1] * 30;
result += date[2];
return result;
}
}
int result = Arrays.compare(array1, array2);- 반환값이 0이면 두 배열이 동일한 순서로 같은 값을 가진다는 뜻입니다.
- 반환값이 음수면 array1이 사전순으로 array2보다 앞섭니다.
- 반환값이 양수면 array1이 array2보다 뒤입니다.
주요 특징 및 사용 경우
- 기본적으로 배열의 길이와 각 인덱스의 값을 순차적으로 비교합니다.
- 첫 차이가 나는 원소의 크기에 따라 반환값을 결정하며, 요소가 같으면 길이를 비교합니다.
- int[], long[], char[] 같은 기본형 배열 모두 지원합니다.
- 깊은 비교가 필요한 객체 배열의 경우
Arrays.deepCompare()를 사용합니다.
- 비교 결과를 이용해 정렬 기준으로도 활용 가능합니다.
Share article