UP
[백준 1476 : PYTHON] 날짜 계산 본문
문제 풀기 : 1476번
문제
수 3개를 이용해서 연도를 나타낸다.
지구, 태양, 달을 나타내는 수이며 지구의 수는 E, 태양의 수는 S, 달의 수는 M이다.
(1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)
제한된 범위를 넘어가면 1로 초기화된다.
E, S, M이 주어졌을 때 연도로 몇 년인지 구한다.
예) 1 15 15 = 16년
문제풀이
모든 경우의 수를 전부 찾는 완전탐색 문제이다.
전체를 탐색하는데 15 x 28 x 19 = 7980 가지 밖에 되지 않으므로 주어진 시간보다 작으므로 완전탐색이 가능하다.
숫자를 증가시킬 변수(t1, t2, t3)와 년 수를 카운트할 변수를 설정하고 루프를 한 번 돌 때마다 +1을 해준다. 카운트 해주기 전에 t1, t2, t3이 각각의 범위를 넘어갈 때마다 변수를 1로 초기화하고 입력받은 e, s, m의 숫자와 같아질 경우 루프를 빠져나온다.
전체코드
import sys
sys.setrecursionlimit(10000)
# 입력
e, s, m = map(int, sys.stdin.readline().split())
# 카운트할 임의의 변수
t1 = t2 = t3 = cnt = 0
while(True):
# 각각의 범위를 넘어갈 때 1로 초기화
if t1 == 16:
t1 = 1
if t2 == 29:
t2 = 1
if t3 == 20:
t3 = 1
# e, s, m과 같은 수가 되면 루프 종료
if t1 == e and t2 == s and t3 == m:
break
# 카운트
t1 += 1
t2 += 1
t3 += 1
cnt += 1
# 출력
print(cnt)
반응형
'알고리즘 > 완전탐색 (브루트 포스, Brute force)' 카테고리의 다른 글
[백준 1525 : PYTHON] 퍼즐 (0) | 2021.01.26 |
---|---|
[백준 2251 : PYTHON] 물통 (0) | 2021.01.26 |
[백준 1963 : PYTHON] 소수 경로 (0) | 2021.01.24 |
[백준 10819 : PYTHON] 차이를 최대로 (0) | 2021.01.22 |
[백준 9095 : PYTHON] 1, 2, 3 더하기 (0) | 2021.01.22 |
Comments