코딩 테스트/프로그래머스
[Python] 프로그래머스 lv.0 날짜 비교하기
위시리
2024. 12. 1. 23:40
정답 코드
실패.. 테스트 케이스에서 걸리는데 어느 테스트 케이스에서 걸리는지 모르겠다.
def solution(date1, date2):
answer = 0
if date1[0] < date2[0] :
answer = 1
elif date1[1] < date2[1] :
answer = 1
elif date1[2] < date2[2] :
answer = 1
else :
answer = 0
return answer
gpt
작성된 코드는 날짜를 비교하는 데 있어서 문제가 있습니다. 연도, 월, 일 순으로 비교를 하고 있지만, 월과 일을 비교할 때 연도와 월 조건이 제대로 연결되지 않았습니다. 따라서 같은 연도에서 잘못된 비교가 발생할 수 있습니다.
문제점: elif 조건이 독립적으로 작동
- 현재 코드의 elif 조건은 이전 조건이 False일 경우에만 평가됩니다.
- 이는 날짜 비교에서 연도와 월이 같을 경우, 일을 비교하는 데 실패하게 만듭니다.
예시 문제 상황
date1 = [2023, 6, 5]
date2 = [2023, 5, 10]
- 첫 번째 조건: date1[0] < date2[0] → False (연도가 같음).
- 두 번째 조건: date1[1] < date2[1] → False (6 > 5).
- 세 번째 조건: date1[2] < date2[2] → 평가되지 않음 (이전 조건이 False이기 때문에).
- 결과: answer = 0, 잘못된 결과.
→ 연도, 월, 일을 순차적으로 비교해야 한다.
다른 사람 코드 1
def solution(date1, date2):
return 1 if date1 < date2 else 0
다른 사람 코드 2
def solution(date1, date2):
return int(date1 < date2)
다른 사람 코드 3
def solution(date1, date2):
for i in range(3):
if date1[i]<date2[i]:return 1
elif date2[i]<date1[i]: return 0
return 0