정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.
제한사항
function solution(date1, date2) {
return date1[0] < date2[0] ? 1 : date1[0] > date2[0] ? 0 : date1[1] < date2[1] ? 1 : date1[1] > date2[1] ? 0 : date1[2] < date2[2] ? 1 : 0;
}
삼항 연산자 지옥 ㅋㅋㅋㅋㅋ 그런데 이렇게 풀고 나니까 +5 됐다 ㅎㅎ
연, 월을 순차적으로 비교하여 조건이 만족되지 않으면 다음 조건으로 넘어갈 수 있도록 해야 한다.
const solution = (date1, date2) => new Date(date1) < new Date(date2) ? 1 : 0
아 ㅋㅋㅋ Date 객체로 만들어서 이걸 바로 비교해버리네...
function solution(date1, date2) {
return date1.join('') - date2.join('') < 0 ? 1 : 0;
}
와 진짜 신기하다... 이걸 join('')으로 합쳐서...
배열을 문자열로 변환한다.
빼기(-
) 연산을 사용해 문자열을 숫자로 변환하여 비교한다.
뺀 값이 0보다 작다면 date1이 더 앞선다는 이야기니까 1, 그렇지 않을 경우 0을 반환한다.
사람들이 다들 특이하게 풀어서 너무 신기한데...!