공부하기/백준

[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