728x90
▶구조 분해 할당 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
정수 배열 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에 따라 가능한 날짜로 주어집니다.
입출력 예 & 설명
입출력 예 #1
- date1이 date2보다 하루 앞서기 때문에 1을 return 합니다.
입출력 예 #2
- date1과 date2는 날짜가 서로 같으므로 date1이 더 앞서는 날짜가 아닙니다. 따라서 0을 return 합니다.
나의 풀이
먼저 문제를 봤을 때 각 배열에 있는 날짜 요소를 합쳐서 숫자로 비교해야겠다고 생각했습니다.
각 요소별로 나눠진 Year, Month, Day를 join() 함수를 사용해서 하나의 문자열로 연결해 주고 Number() 메서드를 사용하여 숫자로 변환해 주었습니다.
그다음 비교 연산자 < 를 사용하여 date1이 더 작다면 date1이 앞선 날짜이기 때문에 삼항연산자를 사용하여 1과 0을 return 해주었습니다.
다른 풀이
다른 풀이에서는 구조 분해 할당과 if문을 사용해 주었습니다.
먼저 이번 문제를 쉽게 풀기 위해서는 구조 분해 할당 개념을 알아야 합니다.
▶구조 분해 할당 포스팅에서 알아본 것처럼 주어진 date1, date2 배열을 구조 분해 할당을 이용하여 각 변수에 저장해 주고 각 Year, Month, Day 가 같지 않으면 바로 비교가 가능하기 때문에 삼항 연산자를 사용하여 answer 값을 return 해주었습니다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 빈 배열에 추가, 삭제하기 (JavaScript) (1) | 2024.02.03 |
---|---|
[프로그래머스] 글자 지우기 (JavaScript) (0) | 2024.01.31 |
[프로그래머스] 등차수열의 특정한 항만 더하기 (JavaScript) (1) | 2024.01.28 |
[프로그래머스] 세로 읽기 (JavaScript) (1) | 2024.01.27 |
[프로그래머스] 배열 만들기 3 (2) | 2024.01.26 |