공부하기/백준

[Python] 백준 풀기 1476 - 날짜 계산

XEV 2022. 12. 1. 23:32

파이썬 백준 1476번

실버5

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

 

1476번: 날짜 계산

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 브루트포스 알고리즘, 정수론

 

 

 

 

 

문제 풀기

문제에서 제시한 설명대로 코드를 작성하였다.

매해 1년이 한 번씩 올라갈 때마다 지구, 태양, 달을 나타내는 수를 하나씩 증가시켜 입력에서 제시한 E, S, M 의 값이 나올 때까지 반복문을 작동시키고 해당 조건을 만족하면 결과 year 를 출력시키고 반복문을 빠져나온다.

 

 

 

 

 

코드 보기

import sys
inputdata = sys.stdin.readline

def fnDateCalc(E, S, M):
    year = 1
    a, b, c = 1, 1, 1
    while True:
        # print(a, b, c)          # test print
        if (a == E and b == S and c == M):
            print(year)
            break
        else:
            year += 1
            a += 1
            b += 1
            c += 1
            
            if a == 15 + 1:
                a = 1
            if b == 28 + 1:
                b = 1
            if c == 19 + 1:
                c = 1


if __name__ == "__main__":
    E, S, M = map(int, inputdata().split())
    
    fnDateCalc(E, S, M)

 

 

 

 

 

추가 하기

예제 입력 1

1 16 16

import sys
inputdata = sys.stdin.readline

def fnDateCalc(E, S, M):
    year = 1
    a, b, c = 1, 1, 1
    while True:
        print(a, b, c)          # test print
        if (a == E and b == S and c == M):
            print(year)
            break
        else:
            year += 1
            a += 1
            b += 1
            c += 1
            
            if a == 15 + 1:
                a = 1
            if b == 28 + 1:
                b = 1
            if c == 19 + 1:
                c = 1


if __name__ == "__main__":
    E, S, M = map(int, inputdata().split())
    
    fnDateCalc(E, S, M)



# 1 16 16

# 1 1 1
# 2 2 2
# 3 3 3
# 4 4 4
# 5 5 5
# 6 6 6
# 7 7 7
# 8 8 8
# 9 9 9
# 10 10 10
# 11 11 11
# 12 12 12
# 13 13 13
# 14 14 14
# 15 15 15
# 1 16 16

# 16