ProblemSolving/BOJ

[백준] 1476번 - 날짜 계산 (Python, 파이썬)

적절 2023. 4. 1. 11:30
반응형

문제

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

 

1476번: 날짜 계산

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

www.acmicpc.net

 

접근 방법

E, S, M의 범위가 작으므로(최소공배수가 1만이 넘지 않는다) 간단하게 완전 탐색을 이용한다.

연도를 1부터 시작하여 1씩 증가하며 E, S, M이 주어진 입력과 같은 경우 그 값을 출력한다.

 

이때, (E, S, M)은 연도가 1일 때 (1, 1, 1), 연도가 2일 때 (2, 2, 2), ...,

연도가 n일 때 ((n - 1) % 15 + 1, (n - 1) % 28 + 1, (n - 1) % 19 + 1)이 된다.

 

E를 예시로 보면 연도가 0부터 시작한다고 봤을 때 15로 나눈 나머지(n % 15)가 0~14 주기로 변하게 된다.

0~14를 문제의 조건에 맞게 1~15로 변하게 해야 하므로 n % 15 + 1이 되며,

주어진 조건에서는 연도가 1부터 시작하므로 (n - 1) % 15 + 1이 된다.

 

코드

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

for i in range(1, 15 * 28 * 19 + 1):
    if (E, S, M) == ((i - 1) % 15 + 1, (i - 1) % 28 + 1, (i - 1) % 19 + 1):
        print(i)
        break

 

풀이 정보

시도 횟수: 1회

총 문제 풀이에 걸린 시간: 5분 3초

 

반응형