[백준] 1476번 : 날짜 계산 (JAVA)

2026. 2. 19. 00:51·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

E(1~15), S(1~28),M(1~19) 세 숫자가 주어진다.
각 숫자는 정해진 주기로 반복되며, 입력값과 동시에 일치하는 가장 빠른 연도를 구하는 문제


📌 접근 방법

세 개의 주기를 각각 직접 증가시키면서
입력값과 일치하는 연도를 찾는 방식으로 해결

 

최대 반복 횟수는
LCM(15, 28, 19) = 7980 이므로
완전 탐색으로도 충분히 해결 가능


📌 핵심 아이디어

  • year = 1부터 시작
  • ec, sc, mc를 각각 1부터 시작
  • 매 반복마다 1씩 증가
  • 범위를 초과하면 1로 초기화
  • 입력값과 동시에 일치하면 종료

즉, 세 개의 시계를 동시에 돌리는 방식


📌 전체 코드

package no_1476;

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

public class No1476 {
    public static void main(String[] args) throws IOException {
        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());

        int year = 1;
        int ec = 1;
        int sc = 1;
        int mc = 1;

        while (true) {

            if (ec == e && sc == s && mc == m) {
                System.out.println(year);
                break;
            }

            ec++;
            sc++;
            mc++;
            year++;

            if (ec > 15) ec = 1;
            if (sc > 28) sc = 1;
            if (mc > 19) mc = 1;
        }
    }
}

📌 정리

  • 서로 다른 주기를 가지는 값을 동시에 맞추는 문제
  • 브루트포스로 충분히 해결 가능
  • 핵심은 주기 초과 시 1로 초기화
  • 최대 반복 7980 → 시간 부담 없음
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

[백준] 9655번 : 돌 게임 (JAVA)  (0) 2026.02.20
[백준] 17478번 : 재귀함수가 뭔가요? (JAVA)  (0) 2026.02.19
[백준] 10815번 : 숫자 카드 (JAVA)  (0) 2026.02.17
[백준] 25206번 : 너의 평점은 (JAVA)  (0) 2026.02.16
[백준] 1789번 : 수들의 합 (JAVA)  (0) 2026.02.15
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • [백준] 9655번 : 돌 게임 (JAVA)
  • [백준] 17478번 : 재귀함수가 뭔가요? (JAVA)
  • [백준] 10815번 : 숫자 카드 (JAVA)
  • [백준] 25206번 : 너의 평점은 (JAVA)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN N
      • 코테(Solved.ac + Programmers) N
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    springboot
    solved.ac
    브루트포스
    정처기실기
    정보처리기사 실기 기출문제
    Level2
    dp
    시뮬레이션
    수학
    피보나치
    백엔드개발자
    level1
    프로그래머스
    백준
    기출문제
    코딩테스트
    정처기
    정렬
    정보처리기사
    문자열
    구현
    자바
    배열
    실기
    java
    알고리즘
    level0
    완전탐색
    자료구조
    정처기오답노트
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
[백준] 1476번 : 날짜 계산 (JAVA)
상단으로

티스토리툴바