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

 

1476번: 날짜 계산

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

www.acmicpc.net

문제

완전탐색문제로써 직접 돌려주면된다.

입력

첫번째 줄 => E, S, M 값이 한줄로 주어진다.

풀이 1

주어진 숫자가 나올때까지 1을 추가시켜준다.(조건에 맞게 범위를 넘지않게 설정)

e, s, m 값에 1을 추가시킬 때마다 year에 1을 추가 시켜준다. 입력으로 주어진 값이 나오면 year을 출력해준다.

# 1476번 날짜 계산
E, S, M = map(int, input().split())
e, s, m, year= 1, 1, 1, 1

while (e, s, m) != (E, S, M):
    e += 1
    if e == 16:
        e = 1
    s += 1
    if s == 29:
        s = 1
    m += 1
    if m == 20:
        m = 1
    year += 1

print(year)

출력결과

풀이 2

조건을 만족하는 연도가 나올 때까지 증가시켜서 푸는건 풀이1과 동일하다.

대신 시간소모가 더 적다.

# 1476번 날짜 계산
E, S, M = map(int, input().split())
Y = 1
while True:
    if ((Y - E) % 15 == 0) and ((Y - S) % 28 == 0) and ((Y - M) % 19 == 0):
        break
    Y += 1

print(Y)

출력결과

 

개발자 성현