저장을 습관화
프로그래머스 LV.0 날짜 비교하기 본문
프로그래머스 LV.0 날짜 비교하기
https://school.programmers.co.kr/learn/courses/30/lessons/181838
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
날짜 비교하기
2. 문제 설명
정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.
3. 제한 사항
- date1의 길이 = date2의 길이 = 3
- 0 ≤ year ≤ 10,000
- 1 ≤ month ≤ 12
- day는 month에 따라 가능한 날짜로 주어집니다.
4. 예시
date1 | date2 | result |
[2021, 12, 28] | [2021, 12, 29] | 1 |
[1024, 10, 24] | [1024, 10, 24] | 0 |
5. 기본 제공 코드
function solution(date1, date2) {
var answer = 0;
return answer;
}
6. 제출한 내 답
const solution = (date1, date2) => {
let a = new Date(date1[0], date1[1], date1[2]);
let b = new Date(date2[0], date2[1], date2[2]);
return a < b ? 1 : 0;
};
6-2. VSC에 작성한 내용
const solution = (date1, date2) => {
let a = new Date(date1[0], date1[1], date1[2]);
let b = new Date(date2[0], date2[1], date2[2]);
return a < b ? 1 : 0;
};
// 테스트
console.log(solution([2021, 12, 28], [2021, 12, 29])); // 예상 결과 1
console.log(solution([1024, 10, 24], [1024, 10, 24])); // 예상 결과 0
console.log(solution([2023, 11, 1], [2023, 10, 29])); // 예상 결과 0
console.log(solution([2023, 9, 17], [2023, 10, 1])); // 예상 결과 1
7. 특이사항
아래 코드가 채점 부분에서 실패해서 뭐지? 싶었는데
const solution = (date1, date2) => {
return date1.join("") < date2.join("") ? 1 : 0;
};
정수는 앞자리에 0이 올수가 없다...
그렇다고 [2023, 9, 21]을 join("")한다면 2023921이 되기 때문에
단순이 크기를 비교하는 현재 풀이법에서는 오류가 발생한다.
date1[0], date2[0] 끼리 비교하고,
그 다음에 date1.slice(0,2), date2.slice(0,2) 이런거 적다가 지우고
아 그냥 시간으로 등록하면 되는데 왜 어렵게 이러고 있지? 라는 생각이 들어서
let 변수 = new Date() 써버렸다.
시간끼리도 비교가 되어서 다행이다.
8. 다른 사람이 작성한 답
8-1.
const solution = (date1, date2) => new Date(date1) < new Date(date2) ? 1 : 0
그냥 배열도 바로 삽입이 가능하구나
8-2. 전개연산자
function solution(date1, date2) {
return new Date(...date1) < new Date(...date2) ? 1 : 0;
}
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 이차원 배열 대각선 순회하기 (0) | 2023.09.22 |
---|---|
프로그래머스 LV.0 중복된 문자 제거 (0) | 2023.09.22 |
프로그래머스 LV.0 합성수 찾기 (0) | 2023.09.21 |
프로그래머스 LV.0 등차수열의 특정한 항만 더하기 (0) | 2023.09.21 |
프로그래머스 LV.2 최댓값과 최솟값 (0) | 2023.09.21 |