[백준] 1476번 : 날짜 계산 - JAVA [자바]

가오리·2023년 11월 28일
0
post-thumbnail

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


브루트포스 알고리즘 문제이다.

세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다.

이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)

  1. 반복문을 돌면서 년도와 e, s, m을 +1 해준다.
  2. e, s, m 각각 범위를 넘어서면 1로 변경해준다.
  3. 입력 받은 E, S, M 과 같은지 본다.

public class bj1476 {

    public static void main(String[] args) throws Exception {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line = br.readLine();
        String[] split = line.split(" ");
        int E = Integer.parseInt(split[0]);
        int S = Integer.parseInt(split[1]);
        int M = Integer.parseInt(split[2]);

		// 0으로 초기화
        int e = 0, s = 0, m = 0;
        int answer = 0;

        while (true) {
            // 1씩 다 증가
            e++;
            s++;
            m++;
            answer++;

       		// (1 ≤ E ≤ 15, 1 ≤ M ≤ 19, 1 ≤ S ≤ 28)
            // 범위를 넘겼으면 1로 초기화
            if (e > 15) e = 1;
            if (s > 28) s = 1;
            if (m > 19) m = 1;

            // 그 후 검증
            if (e == E && s == S && m == M) break;
        }

        bw.write(answer + "\n");

        bw.flush();
        bw.close();
        br.close();
    }
}
profile
가오리의 개발 이야기

0개의 댓글