본문 바로가기

[BOJ] - JAVA

[백준] 1476 : 날짜 계산 JAVA 풀이

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);
    }
}