99클럽 코테 스터디 6일차 TIL - 현충일 이벤트
오늘의 학습 키워드
if문 복습
오늘 공부한 내용
if문
오늘의 회고
오늘은 현충일 이벤트로 나온 날짜를 비교하는 코딩테스트를 진행하였다.
코드 줄을 66줄이나 맞춰야해서 어떻게 해야하나 당황했다.
문제를 읽으니 if문을 사용하면 쉽게 해결될 것이라 생각했지만,
if문도 쉽지 않았다. 어떻게 해야하나 고민하던 찰나 문제를 잘 보니
주어진 date1에서 년도가 date2의 년도보다 작다면 무조건 1을 리턴해야하고 date1이 date2보다 크다면 0을 리턴해야했다.
다음 if문 조건을 판별한다는 것은 date1의 년도와 date2의 년도가 같다는 의미이고 date1의 월이 date2의 월보다 작다면 1을 리턴하고 크다면 0을 리턴했다.
마지막으로 일을 판별한다는 것은 date1의 월과 date2의 월이 같다는 의미이고 date1의 일수와 date2의 일수를 비교하여 1과 0으로 리턴하도록 했다.
그 결과 통과하게 되었다.
하지만 66줄을 맞춰 코딩해야 했기때문에 python docstring을 활용하여 현충일의 코멘트를 나무위키에서 복붙을 했다.
다시한번 if문을 복습할 수 있는 기회였기 때문에 좋았던 시간이였던 것 같다.
결과물
문제내용
date1의 날짜가 date2의 날짜보다 작다면 1을 아니라면 0을 리턴하는 문제이다.
단, date1과 date2는 리스트 형태로 매개변수를 받는다.
date1 : [year, month, day] / date2 : [year, month, day]
풀이방법
- date1과 date2의 년도를 판단하여 date1이 작다면 1을 크다면 0을 리턴한다.
- 다음 판별식에 도착했다는 것은 date1의 년도와 date2의 년도가 같다는 의미이다
- date1와 date2의 월을 비교한다. date1이 작다면 1을 크다면 0을 리턴한다.
- 다음 판별식에 도착했다는 것은 date1의 월과 date2의 월이 같다는 의미이다.
- date1과 date2의 일을 비교한다. date1이 작다면 1을 크다면 0을 리턴한다.
# 첫번째 방법
def solution(date1, date2):
if date1[0] < date2[0]:
return 1
elif date1[0] > date2[0]:
return 0
if date1[1] < date2[1]:
return 1
elif date1[1] > date2[1]:
return 0
# 두번째 방법
def solution(date1, date2):
for i in range(len(date1)):
if date1[i] < date2[i]:
return 1
elif date1[i] > date2[i]:
return 0
return 0
댓글남기기