날짜 비교하기
문제 설명
정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.
입출력 예
date1 | date2 | result |
[2021, 12, 28] | [2021, 12, 29] | 1 |
[1024, 10, 24] | [1024, 10, 24] | 0 |
입출력 예 #1
- date1이 date2보다 하루 앞서기 때문에 1을 return 합니다.
입출력 예 #2
- date1과 date2는 날짜가 서로 같으므로 date1이 더 앞서는 날짜가 아닙니다. 따라서 0을 return 합니다.
나의 풀이
function solution(date1, date2) {
for (const i in date1) {
if (date1[i] > date2[i]) return 0;
if (date1[i] < date2[i]) return 1;
}
return 0;
}
for문에서 date1의 날짜가 앞서거나 date2의 날짜가 앞서는 경우를 걸러주고, 만약 날짜가 동일한 경우에는 for문을 통과한 후 함수에서 0을 return하게 된다.
다른 사람의 풀이 01
const solution = (date1, date2) => new Date(date1) < new Date(date2) ? 1 : 0
date1과 date2는 배열 형태인데도 `new Date()`를 사용하면 Date 객체가 생성된다. Date 객체는 대소 비교가 가능하기 때문에 이 점을 이용한 풀이였다.
function solution(date1, date2) {
let date = new Date(date1);
console.log(date) // 2021-12-27T15:00:00.000Z
}
다른 사람의 풀이 02
function solution(date1, date2) {
return date1.join('') - date2.join('') < 0 ? 1 : 0;
}
join해서 숫자의 크기 자체를 비교한다! 너무 재미있는 풀이였다👍
Date() 생성자
const date1 = new Date('December 17, 1995 03:24:00');
// Sun Dec 17 1995 03:24:00 GMT...
const date2 = new Date('1995-12-17T03:24:00');
// Sun Dec 17 1995 03:24:00 GMT...
console.log(date1 === date2);
// Expected output: false
console.log(date1 - date2);
// Expected output: 0
Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX 타임스탬프를 담습니다.
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.08.14 Programmers_세 개의 구분자 (0) | 2023.08.15 |
---|---|
[TIL] 2023.08.13 Programmers_빈 배열에 추가, 삭제하기 (0) | 2023.08.13 |
[TIL] 2023.08.03 Programmers_0 떼기 (0) | 2023.08.03 |
[TIL] 2023.08.02 Programmers_특별한 이차원 배열 2 (0) | 2023.08.02 |
[TIL] 2023.07.27 Programmers_수열과 구간 쿼리 3 (0) | 2023.07.28 |
댓글