[백준] 1476. 날짜 계산
문제 링크
풀이 과정
완전탐색 문제입니다.
위와 같이, 1년은 1 1 1, 16년은 1 16 16, 20년은 5 20 1, 16년은 14 1 10으로 나타낼 수 있습니다.
문제에서 주어지는 준규가 사는 나라의 연도를 우리가 알고 있는 연도로 직접 구하려고 하지 말고, 역으로 준규가 사는 나라의 연도로 표현되는 값을 구하는 접근 방식을 생각해 볼 수 있습니다.
while (true) {
if ((year - E) % 15 == 0 && (year - S) % 28 == 0 && (year - M) % 19 == 0) {
System.out.println(year);
break;
}
year++;
}
year
를 1부터 증가시키며, 주어진 E
, S
, M
을 뺀 값을 표현되는 각 범위(15, 28, 19)로 나눴을 때 나누어 떨어진다면, 해당 조합은 올바르게 표현된 것으로 판단할 수 있으므로, 정답으로 출력해줍니다.
코드
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;
while (true) {
if ((year - E) % 15 == 0 && (year - S) % 28 == 0 && (year - M) % 19 == 0) {
System.out.println(year);
break;
}
year++;
}
}
}
댓글남기기