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