여니의 Side Project/제주코딩베이스캠프 서포터즈 2기

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 문제3. 섬으로 건너가라

여니's 2021. 7. 16. 09:53

 

 

오늘도 열심히 강의를 들으며 문제를 풀어나가봅니다..!

이 문제 해설 강의를 보기 전에

혼자서 먼저 풀어봤는데,

백준 사이트에서만 문제를 풀다가

새로운 유형의 문제를 풀으려니까 적응이 잘 안되더라구요 ㅠㅠ 

 

그래도 열심히 해석해보다가 

해설 강의 호로록 들어봤어요 :) 

 


datetime 모듈

> 날짜와 시간 데이터 처리를 담당한다.

import datetiem


오늘시간=datetime.datetime.today()

오늘시간.year
오늘시간.month
오늘시간.day
오늘시간.hour
오늘시간.minute

 

#01:01
시간=1
분=1
f'{시간:0>2}:{분:0>2}'

 

 

import datetime

오늘시간=datetime.datetime.today()

대기인원=14000605

def solution(대기인원):
  #년,월
  일년일수=0
  for i in range(10,0,-1):
    일년일수+=2**i
  년=(대기인원//1200)//일년일수
  월=(대기인원//1200)%일년일수

  #월,일
  월별일수누적값=0
  월=0
  for i in range(10,0,-1):
    차감일=월별일수누적값
    월별일수누적값+=2**i
    월+=1
    if 월별일수누적값 > 남은일수:
      break
  일=남은일수-차감일

  #시,분
  최종남은인원 = 대기인원 % 1200
  시=최종남은인원//100+9 #출발시각
  출발분=[25,40,55,70,85,100]
  해당시간에남은인원=최종남은인원%100
  #99+1일경우 시간으로 넘어가 +1시간을 해주어야한다.
  #1시간이 넘을 경우 분에선 -60을 해주고, 시간에서는 1시간을 플러스 해줘야한다.
  for i in 출발분:
    if i>몇분에탈지계산:
      분=출발분.index(i)*10
      break

  if 최종남은인원%100==99: 
    시+=1
    분=-0

  if (오늘시간.minute+분>60):
    분=(오늘시간.minute+분)-60
    시+=1

  return f'{년+2020}년 {월}월 {일}일 {시}시 {분}분 출발'

solution(대기인원)