[백준] 인공지능 시계 (Python)

규갓 God Gyu·2024년 7월 17일

백준

목록 보기
3/96

문제

KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 초 단위로 자동적으로 계산한다.

또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다.

훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 초 단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.

출력

첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 된다.)

예제 입력 1

14 30 0
200

예제 출력 1

14 33 20

예제 입력 2

17 40 45
6015

예제 출력 2

19 21 0

예제 입력 3

23 48 59
2515

예제 출력 3

0 30 54

초기 코드(완성)

a, b, c = map(int, input().split())
d = int(input())

a = a * 60 * 60
b = b * 60

total = a + b + c + d
hour = total//60//60%24
min = total//60%60
second = total%60

print(hour, min, second)

여기서 입력 값을 보면 공백을 기준으로 정수를 입력하기에
input()값 str을 빈 공간을 기준으로 나눠주는 split을 활용해준 후
int로 변환해주는 map을 이용해 a,b,c에 값을 할당시켜준다

그 다음 두번째 줄 입력은 총 걸린 초를 보여주기에 첫째줄의 시간 분 초도 일단 초로 다 바꿔줘야 한다
a 시간은 60x60을 해줘야 초가 되고, b 분은 x60을 해줘야 초가 되기에 그 값들을 다시 a와 b에 할당해준다.
그 다음에 걸린 시간 초를 d에 넣어줘서
맨 처음 전체 초에서 걸린 초만큼의 d를 total에 값을 매겨준다.

그리고 이제 총 합산한 초를 시/분/초로 나눠서 다시 재할당 시켜서 출력시켜줘야하는데
hour/min/second 에 값을 넣어줄건데,
hour같은 경우 전체 초에서 60x60으로 나누고 소수점을 제외한 값이 시간인데 24시간이 넘어서면 안되므로 24가 넘을 경우도 고려해서 %24까지 연산을 추가해서 혹시나 24가 넘는 값이 시간으로 남는다면 24로 나눈 나머지 값을 hour에 넣어주도록 한다
min같은 경우 분을 넣어주므로 60으로 나누고 소수점을 제외한 정수 값이 분일 텐데 60분을 넘기면 안되므로 %60의 나머지 값이 min에 할당되게 된다.
second는 말 그대로 초이므로, 앞에서 자기들의 값을 다 할당해 갔으므로, %60의 나머지가 초로 들어가게 된다

그 결과 값들을 print로 출력해주면 원하는 값을 만들어 출력!!

글로 쓰니까 설명하기가 어려운데,, 점점 가독성 좋게 설명하는것도 노력해보겠다..!

profile
웹 개발자 되고 시포용

0개의 댓글