Baekjoon Case

[파이썬 / 백준 1476번] 날짜 계산

Scarlett_C 2021. 10. 16. 15:29
728x90

https://www.acmicpc.net/problem/1476

 

문제를 풀다가 좀 재밌게 푼 것 같아서 업로드한다.

 

처음에는 동작 원리 자체를 이해 못해서 그냥 S가 가장 크면 S를 출력하게 했는데,

다시 읽어보니 각각 15, 28, 19로 나눠서 나온 나머지가 일치하는 수를 찾는것이었다.

 

그래서 제일 큰수인 28에 0부터 차례대로 곱해서 S를 더한 값을

15와 19로 나눠서 나머지가 각각 E, M과 일치한 값을 찾도록 코드를 짰는데 값이 틀렸다.

 

다시 생각 해 보니 만약 15와 19로 나누어지면 나머지가 0이라 값이 달라진다.

그래서 나머지가 0일 경우에는 각각 15와 19로 값이 변하게끔 코딩을 짰더니 성공!

 

E,S,M=map(int,input().split())
i=0
while True:
    a=28*i+S
    b=a%19
    c=a%15
    if b==0: b=19
    if c==0: c=15
    if b==M and c==E:
        print(a)
        break
    i+=1
728x90