프로그래밍/Algorithm

백준 1476 날짜계산 파이썬

모지사바하 2021. 3. 2. 17:24

www.acmicpc.net/problem/1476

 

1476번: 날짜 계산

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타

www.acmicpc.net

 

브루트포스 매우순한맛이긴한데..

나는 이 문제가 무척 당황스러웠다.

아니..

1 2 3 일때 5266년인데.. 이걸 어떻게 풀어야하나..

최대공약수, 최소공배수를 적용해야하는거같아서 머리로 온통 생각했지만 감이 안올라서 결국 또 검색했다.

다른 블로그 서문을 보는 순간, 아.. 하고 바로 구현에 들어갔다.

무식하게 생각하는게 생각보다 쉽지 않다는걸 깨달은 문제다. 일단은 무식하게 먼저 생각해보자.

E, S, M = map(int, input().split())

temp_e = 1
temp_s = 1
temp_m = 1

ans = 1
while True:
    if temp_e == E and temp_s == S and temp_m == M:
        print(ans)
        break

    temp_e+=1
    temp_s+=1
    temp_m+=1
    
    if temp_e == 16:
        temp_e = 1
    
    if temp_s == 29:
        temp_s = 1
    
    if temp_m == 20:
        temp_m = 1
    ans+=1

지구, 태양, 달을 1년부터 1씩 증가시키면서 증가시킨 값을 누적하고,

각 별의 제한년도를 넘어서면 1로 초기화해주는걸 반복하다보면 입력값의 년도를 계산할 수 있다.