문제 : https://www.acmicpc.net/problem/1476

Key Point

지구를 나타내는 숫자 E : 0<=E<=15
태양을 나타내는 숫자 S : 0<=S<=28
달을 나타내는 숫자 M : 0<=M<=19
1 1 1은 1년을 의미한다. 각 숫자의 범위를 넘어가면 1로 바뀐다.

Explain

e=1,s=1,m=1로 1년을 설정해놓고 풀면 된다.
무한 loop 속에서 e,s,m이 내가 입력 받은 E,S,M과 모두 일치하는 경우를 찾으면 된다.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Exam1476 {


public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine(), " ");
int E = Integer.parseInt(st.nextToken());
int S = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());

int e=1,s=1,m=1;
// 1 1 1은 1년을 의미
for(int i=1; ; i++) {
// 무한 loop
if(e == E && s == S && m == M) {
System.out.println(i);
break;
}
e++;
s++;
m++;
if(e == 16)
e=1;
if(s == 29)
s=1;
if(m == 20)
m=1;
}
}

}