본문 바로가기

코딩테스트/백준

[백준-자바] 1476번 날짜 계산 / 2022.02.14

 

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

 

1476번: 날짜 계산

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

www.acmicpc.net

 

 

import java.util.Scanner;

public class Main {
    public static void main(String args[]){
    	Scanner sc = new Scanner(System.in);
    	int E = sc.nextInt();
    	int S = sc.nextInt();
    	int M = sc.nextInt();
    	int year = 1; // 년도를 1씩 늘려가면서 알아냄
    	while(true) {
    		if(E==15)
    			E=0;
    		if(S==28)
    			S=0;
    		if(M==19)
    			M=0;
    		if(year%15==E&&year%28==S&&year%19==M) {
    			System.out.println(year);
    			return;
    		}
    		year++;
    	}
    }
}

 

풀이 :

년도를 1씩 늘려가면서 각각 15, 28, 19로 나누었을 때의 나머지가 처음에 입력한 E, S, M과 같아질 때를 찾으면 된다.

단, 입력이 

 

 

이와 같다면 답이 나오질 않는데 이 경우에 나머지는 셋 다 0인 반면에 E, S, M은 15, 28, 19이기 때문이다.

따라서 위 경우일 때 답을 찾기 위해 E==15, S==28, M == 19 일 때에는 각 변수를 0으로 바꾸어주는 과정이 필요하다.