미경이 스터디 6.8

코변·2022년 6월 7일
0
post-thumbnail

Photo by Pietro Mattia on Unsplash

2016년

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리스트에 인덱스 값으로 넘겨주면 주어진 월 일의 요일 값을 구할 수 있다.

3진법 뒤집기

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진법으로 바꾸어 반환하였다.

그 밖의 문제

예산

profile
내 것인 줄 알았으나 받은 모든 것이 선물이었다.

0개의 댓글