RUBY

[백준] 소금 폭탄 본문

PS/BOJ

[백준] 소금 폭탄

RUBY_루비 2024. 2. 17. 23:00

출처:: https://www.acmicpc.net/problem/13223

분류::문자열 

 

1. 문제 이해 및 해결과정

입력1, 입력2 
입력1이 더 크면 24에서 입력1빼고 + 입력2
입력2가 더 크면 입력2에서 입력1뺌

* 시분초의 계산
1) 차이 계산
-초 차이가 음수면 초+=60 , 분 --
-분 차이가 음수면 분+=60 ,시간 --
-시간 차이가 음수면 시간 += 24

2) 가장 작은 단위인 초로 통일하기 
시간 = total  초 / 3600
분 = ( total  초%3600) / 60
초 = total 초 % 60

 

2. 풀이방법

curtime = input().split(":") #['20', '00', '00']
target = input().split(":")

cur_h,cur_m, cur_s = map(int,curtime)
tar_h, tar_m, tar_s = map(int, target)

cur_sec = cur_h * 3600 + cur_m*60 + cur_s
target_sec = tar_h * 3600 + tar_m*60 + tar_s


sec = target_sec - cur_sec

if sec <= 0 : # 출력 1초보다 크거나 같고 -> 0이 나오면 안됨, = 0 조건이 필요
    sec +=24*3600


h = sec // 3600
m = (sec % 3600) // 60
s = sec % 60

print("{:02d}:{:02d}:{:02d}".format(h,m,s))

 

3. 오답원인

 

4. 알게된 점

- 가장 작은 단위로 통일하기 

- "{:02d}:{:02d}:{:02d}".format(h,m,s)

'PS > BOJ' 카테고리의 다른 글

[백준]수 정렬하기 3  (0) 2024.02.17
[백준] 빠른 A+B  (0) 2024.02.17
[백준]두 수의 합  (0) 2024.02.17
[백준]문서 검색  (0) 2024.02.14
[백준] 애너그램 만들기  (0) 2024.02.14
Comments