반응형
출처: https://www.acmicpc.net/problem/1476
Approach
▶ 완전탐색 유형이다.
E, S, M 각각 최대 15, 28, 19를 기준으로 순환된다.
그리고 우리가 알고 있는 연도로 표현했을 때, 가장 오래된(빠른) 연도를 출력하는 것이다.
지구(E) 관점에서 수치를 생각해보자.
E = 1 일 때, 만족하는 연도(ans) = 1, 16, 31, 46, ... 으로
→ (ans - E)는 15의 배수이다.
(ans - E), (ans - S), (ans - M)에 대해
각각 15, 28, 19로 나누어 떨어지는 값을 찾는다
C++
#include <iostream>
using namespace std;
int E, S, M, ans;
int main()
{
// freopen("input.txt", "r", stdin);
cin >> E >> S >> M;
ans = 1;
while (1)
{
if ((ans - E) % 15 == 0 &&
(ans - S) % 28 == 0 &&
(ans - M) % 19 == 0
)
break;
ans++;
}
cout << ans << endl;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int e=1, s=1, m=1;
int E, S, M;
E = sc.nextInt();
S = sc.nextInt();
M = sc.nextInt();
int idx = 1;
while(true){
if(e > 15)
e = 1;
if(s > 28)
s = 1;
if(m > 19)
m = 1;
if(e == E && s == S && m == M)
break;
idx++;
e++; s++; m++;
}
System.out.println(idx);
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 1057 토너먼트 (0) | 2021.09.18 |
---|---|
[BOJ] 백준 1155 변형 하노이 (0) | 2021.09.18 |
[BOJ] 백준 1924 2007년 (0) | 2021.09.17 |
[BOJ] 백준 1568 새 (0) | 2021.09.15 |
[BOJ] 백준 1550 16진수 (0) | 2021.09.14 |
댓글