https://www.acmicpc.net/problem/1476
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으로 바꾸어주는 과정이 필요하다.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준-자바] 2609번 최대공약수와 최소공배수 / 2022.02.17 (0) | 2022.02.17 |
---|---|
[백준-자바] 3036번 링 / 2022.02.17 (0) | 2022.02.17 |
[백준-자바] 2563번 색종이 / 2022.02.11 (0) | 2022.02.11 |
[백준-자바] 1427번 소트인사이드 / 2022.02.11 (0) | 2022.02.11 |
[백준-자바] 2231번 분해합 / 2022.02.10 (0) | 2022.02.10 |