E S M은 모두 1부터 시작해서 1년이 지날 때마다 1씩 증가한다.
이때 E S M의 범위는 모두 달라서 1씩 증가하다가 자신의 범위를 넘어서면 다시 1로 돌아가야 한다.
이를 반복하면서 입력된 E S M을 만족하려면 몇 년이 걸리는지를 알아내는 문제인데,
풀이방법은 간단하다.
1. E S M을 입력받는다
2. 입력된 E S M을 만족하려면 몇 년이 걸리는지 기록할 변수 year를 생성한다.
3. 1 1 1부터 1씩 증가시켜서 E S M과 일치하는지 검사하는 데에 필요한 변수 e, s, m을 생성한다.
4. E와 e가 같고, S와 s가 같고, E와 e가 같을 때까지 e, s, m, year을 1씩 증가시킨다.
5. E==e&&S==s&&M==m을 만족할 때의 year값을 출력한다.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.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;
int year = 1;
while(!(e==E&&s==S&&m==M)){
e++;
s++;
m++;
year++;
if(e>15) e = 1;
if(s>28) s = 1;
if(m>19) m = 1;
}
System.out.println(year);
}
}
'[BOJ] - JAVA' 카테고리의 다른 글
[백준] 1780 : 종이의 개수 JAVA 풀이 (0) | 2022.09.10 |
---|---|
[백준] 11728 : 배열 합치기 JAVA 풀이 (0) | 2022.09.08 |
[백준] 10824 : 네 수 JAVA 풀이 (0) | 2022.09.05 |
[백준] 11655 : ROT13 JAVA 풀이 (0) | 2022.09.05 |
[백준] 2743 : 단어 길이 재기 JAVA 풀이 (0) | 2022.09.05 |