Photo by Pietro Mattia on Unsplash
def solution(a, b):
month = [31,29,31,30,31,30,31,31,30,31,30,31]
weeks = ['FRI', 'SAT', 'SUN', 'MON','TUE','WED','THU']
mon_sum = 0
for mon_num in range(a-1):
mon_sum += month[mon_num]
return weeks[(mon_sum+(b-1))%7]
2016년의 특정한 월을 a로 일을 b로 받아 그 날짜의 요일을 반환하는 함수를 만들면 되는 문제. 2월달이 윤달이고 1월1일이 금요일이라는 힌트가 있었다. 이를 토대로 a-1달까지 더한 값 + (b-1)을 더해주고-> 1을 빼는 이유: 리스트의 인덱스는 0부터 시작하므로 <- 마지막으로 요일을 구하기 위해 7을 나눈 나머지 값을 구해 weeks리스트에 인덱스 값으로 넘겨주면 주어진 월 일의 요일 값을 구할 수 있다.
def solution(n):
answer = ''
while n > 0:
n, mod = divmod(n, 3)
answer += str(mod)
return int(answer, 3)
10진법에서 n진법으로 변환한 수를 얻으려면 주어진 숫자를 진법 숫자로 나눠주고 그 나머지를 순서대로 나열해 뒤집어주면 진법변환이 가능하다. 그러나 이 문제에서는 3진법을 뒤집으라고 했기 때문에 마지막에 문자열을 뒤집는 부분을 생략하고 바로 int('',3)으로 3진법을 10진법으로 바꾸어 반환하였다.
예산