본문 바로가기

Java/코딩 테스트

브루트 포스: 백준 1476 자바(Java) 날짜 계산

반응형

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

 

1476번: 날짜 계산

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타

www.acmicpc.net

풀이: 

어떤 수를 15, 28, 19로 나눈 나머지가 각각 주어진 e, m, s와 같다면 그 수를 출력하면 되는 문제이다.

year를 0으로 초기화하고 1씩 늘려가며 체크를 하는 방법으로 풀었다. 

예외가 있다면 만약 주어진 수를 15, 28, 19로 나누는 경우 나머지는 0이 되어버린다. 

이 예외처리를 해주기 위해 주어진 e, m, s가 15, 28, 19일 경우 0으로 바꿔주었다. 

 

정답:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        int E = 15;
        int S = 28;
        int M = 19;

        int year = 0;

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

        if (e == E)
            e = 0;
        if (s == S)
            s = 0;
        if (m == M)
            m = 0;

        while (true) {
            year += 1;

            if (year % E == e && year % S == s && year % M == m) {
                break;
            }
        }
        System.out.println(year);
    }
}

 

반응형