[PYTHON] 2884 알람시계

    문제 해석

    • 입력값에 불필요한 0은 사용하지 않고
    • 공백으로 시간과 분을 구분한다.
    • 분에다 45분을 뺴 음수가 나오면 시간에 -1를 해준다.
    • 만약 시간이 0시이고 분에 45분을 뺀 수가 음수이면 시간은 23시이다.
    • 그 외는 분에 45분을 빼고 시와 분을 출력하면 된다.

    solution 1 - 실패

    import sys
    hour, min = map(int, sys.stdin.readline().strip().split(' '))
    
    min_45ago = min - 45
    if hour == 0 :
      print(f'23 {60 + min_45ago}')
    elif min_45ago < 0:
      print(f'{hour - 1} {60 + min_45ago}')
    else :
      print(f'{hour} {min_45ago}')
    • 실패 원인
      • 0시 45분일때 23시 60분이 출력됨.
      • 분에서 45분전이 0분일때를 고려하지 못했다.

    solution 2 - 성공

    import sys
    hour, min = map(int, sys.stdin.readline().strip().split(' '))
    
    min_45ago = min - 45
    
    if min_45ago == 0: # 45분을 뺀 수가 0분이면
      print(f'{hour} 0') # 시간과 0분을 출력한다.
    elif min_45ago < 0: # 기준 분에 45분을 뺀 수가 음수일떼 
      if hour == 0 : # 시간이 0시이면
        print(f'23 {60 + min_45ago}') # 시는 23시가 되고 음수인 수에 60분을 더해준다.
      else:
        print(f'{hour - 1} {60 + min_45ago}') # 그 외는 시간에 -1을 해주고 음수인 수에 60분으 더해준다.
    else :
      print(f'{hour} {min_45ago}')

    'algorithm > 백준' 카테고리의 다른 글

    [PYTHON] 2480 주사위 세개  (0) 2023.01.11
    [PYTHON] 2525 오븐시계  (0) 2023.01.11
    [PYTHON] 14681 사분면 고르기  (0) 2023.01.11
    [PYTHON] 2753 윤년  (0) 2023.01.11
    [PYTHON] 9498 시험 성적  (0) 2023.01.11

    댓글