[BOJ 1308번] D-Day(Python)

2024. 2. 2. 10:25· 코딩 테스트 준비/5정한
목차
  1. 📝 문제
  2. ✅ 풀이

📝 문제

💡 캠프에 오게 된 송유진은 캠프가 너무 지루해서
오늘로부터 캠프가 끝날 때 까지 며칠이나 남았는지 알아보고 싶었다.
그런데 캠프는 비상식적으로 길지도 몰라서 손으로 하나하나 세기에는 힘들어 보였다.
더욱 정확한 계산을 위해, 유진이는 윤년이 정해지는 기준을 찾아보았고, 그것은 다음과 같았다.

서력기원 연수가 4로 나누어떨어지는 해는 우선 윤년으로 한다.
100으로 나누어떨어지는 해는 평년으로 한다.
400으로 나누어떨어지는 해는 다시 윤년으로 한다.
그런데 캠프가 너무 길 경우, 사춘기인 유진이는 캠프에 무단으로 빠질지도 모른다.
⚙️ 입력 : 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다.
날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다.
입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다.
오늘의 날짜는 항상 D-Day보다 앞에 있다.
⚙️ 출력 : 오늘부터 D-Day까지 x일이 남았다면, "D-"를 출력하고 그 뒤에 공백 없이 x를 출력한다.
만약 캠프가 천년 이상 지속된다면
(오늘이 y년 m월 d일이고, D-Day가 y+1000년 m월 d일과 같거나 늦다면)
대신 "gg"를 출력한다.
오늘이 2월 29일인 경우는 주어지지 않는다.

 

문제링크

 

1308번: D-Day

첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다.

www.acmicpc.net


✅ 풀이

import datetime
t_y, t_m, t_d = map(int, input().split())
d_y, d_m, d_d = map(int, input().split())

today = datetime.date(t_y, t_m, t_d)
dday = datetime.date(d_y, d_m, d_d)

timediff = int((dday-today).days)

flag = 1

if d_y - t_y > 1000:
    flag = 0
elif d_y - t_y == 1000:
    if d_m == t_m:
        if d_d >= t_d:
            flag = 0
    elif d_m > t_m:
        flag = 0


if flag:
    print(f"D-{timediff}")
else:
    print("gg")
💡 날짜의 범위가 매우 넓기 떄문에, 윤년을 하나하나 다 계산하기 어려워보였다.
따라서 datetime 모듈로 날짜를 datetime 객체로 만든 다음,
두 객체를 빼서 날짜의 차이를 구했다.

처음에는 날짜 차이 // 365를 해서 1000이 넘으면 gg를 출력하게 했는데,
문제의 조건을 보고 깨닫게 된 점은
년도 차이가 1000인 경우엔 월과 일을 비교해야 한다는 것이다.

따라서 해당 조건을 flag로 판단하여 알맞은 출력을 해주도록 했다.
저작자표시 비영리 변경금지 (새창열림)
  1. 📝 문제
  2. ✅ 풀이
'코딩 테스트 준비/5정한' 카테고리의 다른 글
  • [BOJ 1316번] 그룹 단어 체커(Python)
  • [BOJ 1312번] 소수(Python)
  • [BOJ 1813번] 논리학 교수(Python)
  • [BOJ 1251번] 단어 나누기(Python)
zzzini
zzzini
종착지는 어디인지 모르지만
zzzini
나의 표류일지
zzzini
전체
오늘
어제
  • 분류 전체보기 (308)
    • ASAC 빅데이터 분석가 4기 (44)
      • Python기초 (6)
      • SQL (3)
      • Matplotlib & Seaborn (2)
      • Data Handling (6)
      • Web Crawling (3)
      • Machine Learning (9)
      • Deep Learning (10)
      • 데이터 분석 (1)
      • 기타 (2)
      • 수학 (2)
    • 코딩 테스트 준비 (168)
      • 5정한 (132)
      • 카카오 (14)
      • PCCP & PCCE (3)
      • 프로그래머스 (19)
    • 자격증 (35)
      • AWS CLF-C02 (18)
      • AWS SAA-C03 (1)
      • Tableau Desktop Specialist (5)
      • Tableau Certified Data Anal.. (11)
    • 독서 (17)
    • Tech (24)
      • Tableau (11)
      • AI (4)
      • Flask (1)
      • Node.js (2)
      • Cloud Computing (2)
      • Git & GitHub (1)
      • Notion API (1)
      • Linux (2)
    • Projects (2)
    • 알고리즘 공부 (6)
    • 🎵 (11)

블로그 메뉴

  • 글 쓰기
  • 홈
  • 방명록

공지사항

hELLO · Designed By 정상우.v4.2.1
zzzini
[BOJ 1308번] D-Day(Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.