E, S, M = map(int,input().split())
RESULT_RANGE = 15*28*19 + 1
for i in range(RESULT_RANGE):
a, b, c = i%15 + 1, i%28 + 1, i%19 + 1
if E == a and S == b and M == c:
print(i + 1)
break
이번 문제는 E, S, M 이라는 수를 가지는 년도를 나타낼 때, 주어진 E, S, M으로 표시되는 가장 빠른 년도를 구하는 문제이다.
다만, 여기서 주의해야할 점은 세 수는 모두 서로 다른 범위를 가진다는 점이다.
이 문제의 풀이에 핵심은 '가능한 경우의 수를 모두 탐색해보는 완전 탐색, 즉 Brute Force 알고리즘을 사용해야 한다는 점'과 '나머지를 활용하여 값을 비교한다는 점'이다.
따라서 모든 경우를 탐색하기 위해 범위를 15 x 28 x 19 + 1 로 설정하였고, 나머지를 통해 a, b, c를 만들어 E, S, M과 비교하여 문제를 풀이할 수 있었다.
'Algorithm 💡 > BruteForce' 카테고리의 다른 글
[프로그래머스 Lv.1] 모의고사 (0) | 2023.09.29 |
---|---|
[프로그래머스 Lv.1] 최소직사각형 (0) | 2023.09.28 |
[백준 1107번] 리모컨 (0) | 2023.05.03 |
[백준 3085번] 사탕 게임 (0) | 2023.05.02 |
[BF] 브루스 포스 알고리즘의 개념 (0) | 2023.05.02 |