🦛 문제 설명
정수 배열 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 |
🦛 입출력 예 설명
입출력 예 #1
- date1이 date2보다 하루 앞서기 때문에 1을 return 합니다.
입출력 예 #2
- date1과 date2는 날짜가 서로 같으므로 date1이 더 앞서는 날짜가 아닙니다. 따라서 0을 return 합니다.
🦛 풀이
✅ 접근 방식 요약
1. 날짜 비교는 연 → 월 → 일 순서로
- 날짜는 왼쪽에서부터 큰 단위니까,
먼저 연도(year)를 비교 → 같으면 월(month) → 그것도 같으면 일(day)을 비교하면 돼. - 즉, 사전식 비교 (lexicographical order)처럼 단계적으로 비교해.
2. 비교 순서
- date1[0] < date2[0] → date1이 먼저
- 같다면 date1[1] < date2[1] 확인
- 그것도 같다면 date1[2] < date2[2] 확인
- 위 조건 중 하나라도 성립하면 1을 리턴
- 아니면 0
class Solution {
public int solution(int[] date1, int[] date2) {
int answer = 0;
if (date1[0] < date2[0]) {
answer = 1;
} else if (date1[0] == date2[0]) {
if (date1[1] < date2[1]) {
answer = 1;
} else if (date1[1] == date2[1]) {
if (date1[2] < date2[2]) {
answer = 1;
}
}
}
return answer;
}
}
'코딩테스트_문제풀이 > 프로그래머스' 카테고리의 다른 글
피자 나눠 먹기 (2) (0) | 2025.06.03 |
---|---|
5명씩 (1) | 2025.06.03 |
ad 제거하기 (0) | 2025.06.02 |
모스부호 (1) (0) | 2025.01.29 |
간단한 논리 연산 (0) | 2024.08.01 |