Developer. Designer

프로그래머스 기초트레이닝 Day23-5

날짜 비교하기😀

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

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

※ 제한 사항
date1의 길이 = date2의 길이 = 3
0 ≤ year ≤ 10,000
1 ≤ month ≤ 12
day는 month에 따라 가능한 날짜로 주어집니다.

입출력

date1 date2 result
[2021, 12, 28] [2021, 12, 29] 1
[1024, 10, 24] [1024, 10, 24] 0


function solution(date1, date2) {
  var answer = 0;

  // 년도 비교
  if (date1[0] < date2[0]) {
    answer = 1;
  } else if (date1[0] > date2[0]) {
    answer = 0;
  } else {
    // 년도가 같은 경우, 월 비교
    if (date1[1] < date2[1]) {
      answer = 1;
    } else if (date1[1] > date2[1]) {
      answer = 0;
    } else {
      // 월도 같은 경우, 일 비교
      if (date1[2] < date2[2]) {
        answer = 1;
      } else {
        answer = 0;
      }
    }
  }

  return answer;
}

먼저 두 날짜의 연도를 비교합니다.

만약 date1의 연도가 date2의 연도보다 작다면, answer를 1로 설정합니다.
만약 date1의 연도가 date2의 연도보다 크다면, answer를 0으로 설정합니다.
연도가 같은 경우, 월을 비교합니다.
연도가 같은 경우, 두 날짜의 월을 비교합니다.

만약 date1의 월이 date2의 월보다 작다면, answer를 1로 설정합니다.
만약 date1의 월이 date2의 월보다 크다면, answer를 0으로 설정합니다.
월도 같은 경우, 일을 비교합니다.
연도와 월이 모두 같은 경우, 두 날짜의 일을 비교합니다.

만약 date1의 일이 date2의 일보다 작다면, answer를 1로 설정합니다.
그 외의 경우, answer를 0으로 설정합니다.
최종적으로 answer 값이 반환됩니다. 이 함수를 통해 두 날짜를 비교하여 앞선 날짜인지 아닌지를 판단할 수 있습니다.