코딩테스트 연습 - 2016년

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일이다. 2016년 a월 b일은 무슨 요일일까? 예를 들어 5월 24일은 화요일이므로 문자열 "TUE"를 반환하라.

# 정답코드

calendar.weekday 함수를 사용하면 요일이 숫자로 반환되므로 숫자와 요일을 dictionary로 매칭시킨 후 get 함수로 입력값에 따라 값이 반환되도록 하였다.

import calendar

def solution(a, b):
    date_num = calendar.weekday(2016, a, b)
    date = {0:"MON", 1:"TUE", 2:"WED", 3:"THU", 4:"FRI", 5:"SAT", 6:"SUN"}
    .get(date_num, "NONE") # get함수의 첫번째 인자인 date_num에 따라 date값이 결정
    return date

*switch문

python에는 switch문이 없다.

1. if~else문

case가 적은 경우 가장 간단한 방법이다.

if date_num == 0:
	date = "MON"
elif date_num == 1:
	date = "TUE"
elif date_num == 2:
	date = "WED"
elif date_num == 3:
	date = "THU"
elif date_num == 4:
	date = "FRI"
elif date_num == 5:
	date = "SAT"
elif date_num == 6:
	date = "SUN"
else: date = "NONE"
    
    

2. dictionary 이용

case가 너무 많은 경우 if~else문을 나열하지말고 dictionary를 이용하라

import calendar

def solution(a, b):
    date_num = calendar.weekday(2016, a, b)
    date = {0:"MON", 1:"TUE", 2:"WED", 3:"THU", 4:"FRI", 5:"SAT", 6:"SUN"}
    .get(date_num, "NONE") # get함수의 첫번째 인자인 date_num에 따라 date값이 결정
    return date

좋은 웹페이지 즐겨찾기