[backjoon] 1476 날짜 계산 (python)

나는야 토마토·2022년 2월 8일
0

algorithm

목록 보기
12/24
post-thumbnail

1476번: 날짜 계산

BruteForce 문제

이 문제는 우리와 다른 날짜로 계산되어지는 준수가 사는 나라의 날짜는 구하는 문제이다. 준규가 사는 나라는 수 3개를 이용해서 연도를 나타내고, 각각의 수는 지구 E, 태양 S, 달 M을 이용한다. 우리가 알고 있는 1년은 준수의 나라에선 1 1 1로 계산되어진다. 1년이 지날 때 마다 세 수는 모두 1씩 증가하며 준규가 사는 나라에서 E S M 날짜가 우리가 알고 있는 연도로 몇 년인지 구하는 프로그램을 작성해야한다.

but) 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다. 이유는 1 ≤ E ≤ 15 라서 범위를 넘어가기 때문

(1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)


예제 입력

1 2 3

예제 출력

5266

문제풀이

우선 지구 E, 태양 S, 달 M 입력받는 코드와 날짜 계산할 year변수를 생성해준다.

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

문제에서 (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 범위가 주어졌기 때문에
아래와 같이 작성한다.

while(True):
	year += 1
 	if E > 15:
        E -= 15
    if S > 28:
        S -= 28
    if M > 19:
        M -= 19

만약 입력 값이 1 16 16일 때는 위에 조건에 해당 되는 식이 없으므로 조건을 만들어주면 아래와 같다.
year가 16이 되었을 때 출력이 된다.

if (year - E) % 15 == 0 and (year - S) % 28 == 0 and (year - M) % 19 == 0 :
   print(year)

전체코드

import sys
input = sys.stdin.readline

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

while(True):
    year += 1
    if E > 15:
        E -= 15
    if S > 28:
        S -= 28
    if M > 19:
        M -= 19
    if (year - E) % 15 == 0 and (year - S) % 28 == 0 and (year - M) % 19 == 0 :
        print(year)
        break
profile
토마토마토

0개의 댓글