Contents

날짜 비교하기(with.Java)

   Nov 27, 2023     1 min read

“날짜 비교하기” 문제에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.

문제에 대해 먼저 알아보겠습니다.

문제

정수 배열 date1과 date2가 주어집니다.

두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.

만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.

입출력 예시

date1date2result
[2021, 12, 28][2021, 12, 29]1
[1024, 10, 24][1024, 10, 24]0

문제에 대한 나의 풀이

class Solution {
    public int solution(int[] date1, int[] date2) {
        int answer = 0;
        for(int i = 2; i >= 0; i--){
            if(date1[i] < date2[i]){
                answer = 1;
            }else if(date1[i] > date2[i]){
                answer = 0;
            }
        }
        return answer;
    }
}

풀이 설명

int answer = 0;: 결과를 저장할 정수형 변수 answer를 초기화합니다. 초기값은 0입니다.

for(int i = 2; i >= 0; i–) : 2부터 시작하여 0까지 반복하는 루프를 사용하여 각 날짜 필드 (년, 월, 일)를 비교합니다. 루프는 년부터 시작하고, 년, 월, 일 순서로 비교합니다.

if(date1[i] < date2[i]) : 현재 필드에서 date1 값이 date2 값보다 작은 경우:

answer를 1로 설정합니다. 이는 date1이 date2보다 이전인 경우를 나타냅니다 . else if(date1[i] > date2[i]) : 현재 필드에서 date1 값이 date2 값보다 큰 경우:

answer를 0으로 설정합니다. 이는 date1이 date2보다 이후인 경우를 나타냅니다.

return answer;: 날짜를 비교한 결과를 나타내는 answer 값을 반환합니다.