오랑우탄의 반란
프로그래머스 | 2016년 (Python3) 본문
반응형
오늘도 오랑이는 문제를 풉니다.
2016년
풀이 과정
필수는 아니지만 없으면 허전하기 때문에 2016년 달력을 한 번 봅시다.
이 문제에서 주목해야 할 부분은 아래 두 가지입니다:
- 날짜 % 7 = 1 은 금요일
- 각 월의 날짜들은 이어지기 때문에 이전 월의 일수에 날짜를 더한 값 = 날짜
즉, 요일과 월별 일수를 나열한 리스트 2개를 작성해주고 여기서 값을 추출해서 계산해주는 방식으로 풉니다.
아까 나머지가 1일 때 금요일이기 때문에 리스트 인덱스와 맞춰서 작성해줍니다.
또한 이전 달의 날짜에 b 를 더해야 하기 때문에 month 리스트는 0부터 시작하도록 해줍니다.
def solution(a, b):
weekday = ['THU','FRI','SAT','SUN','MON','TUE','WED']
month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30]
day = 0
range(a) 에 대해서 (0~11) 각 월에 대해 day 에 월별 일수를 더해주고,
그것을 7로 나눈 나머지를 weekday 인덱스로 뽑아줍니다.
12월에 대한 month 값이 필요하지 않은 이유를 알 수 있지요.
for i in range(a):
day += month[i]
answer = weekday[(day + b) % 7]
최종 코드
def solution(a, b):
weekday = ['THU','FRI','SAT','SUN','MON','TUE','WED']
month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30]
day = 0
for i in range(a):
day += month[i]
answer = weekday[(day + b) % 7]
return answer
오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~
반응형
'PYTHON > 프로그래머스' 카테고리의 다른 글
프로그래머스 | 모의고사 (Python3) Enumerate (2) | 2024.07.23 |
---|---|
프로그래머스 | 과일 장수 (Python3) (4) | 2024.07.22 |
프로그래머스 | 명예의 전당 (1) (Python3) (1) | 2024.07.16 |
프로그래머스 | 콜라 문제 (Python3) (2) | 2024.07.16 |
프로그래머스 | 푸드 파이트 대회 (Python3) (2) | 2024.07.16 |