728x90
문제
7572번: 간지(干支)
예로부터 동아시아에서는 십간(十干)과 십이지(十二支)를 사용하여 연도를 표시하였다. 십간은 "갑을병정무기경신임계"를 말하며 십이지는 "자축인묘진사오미신유술해"를 말한다. 십간과 십이
www.acmicpc.net

풀이
import sys
input = sys.stdin.readline
def convert_ganzi(year):
ten_gan = [str(i) for i in range(10)] # 십간: 0부터 9까지의 정수
twelve_ji = "ABCDEFGHIJKL" # 십이지: "ABCDEFGHIJKL"
# 2013년은 F9이므로, 1984년부터 시작하는 것으로 계산
year_offset = year - 1984
# 십이지와 십간 계산
ji = twelve_ji[year_offset % 12]
gan = ten_gan[year_offset % 10]
return ji + gan
N = int(input())
print(convert_ganzi(N))
십간과 십이지에 해당하는 문자열을 만들고, 주어진 연도에 대해 올바른 문자를 찾아 반환하는 함수인 convert_ganzi를 구현했습니다.
십간은 0부터 9까지의 정수로 표현하고 십이지는 "ABCDEFGHIJKL"로 표현합니다. 그리고 2013년이 "F9"로 표현되기 때문에, 시작연도인 1984년을 빼서 해당 연도의 간지 표현법을 계산합니다.
728x90