[알고리즘문제풀기] 날짜 비교하기

silver's avatar
Sep 08, 2025
[알고리즘문제풀기] 날짜 비교하기

문제

내가 작성한 정답

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

silver