H나 M은 수입니다. 그러나 ":"은 문자열입니다. 수와 문자열은 더할 수 없습니다.
덧셈 연산으로 여러 문자열을 합치시려면 우선 각 수를 문자열로 변환할 필요가 있습니다.
2884번 - 알람 시계
파이썬 문법에서 두가지 실수를 하신 것 같습니다.
1. H와 M을 입력받을 때, input()과 split() 사이에는 ,(반점, 쉼표)가 아니라 .(온점, 마침표)가 와야 합니다.
2. print 하실 때 숫자+문자를 출력하고자 할 때는 숫자를 문자화해야합니다. ex) print(str(3) + ":" + str(35)) -> "3:35" (str함수 사용 시)
일단은 실수가 보입니다. 출력에서는 ':'를 포함하지 않습니다. 그러므로 H,M의 형식으로 출력해야 합니다. 그리고 위에서 말한 것처럼 input()과 split()사이에는 '.'이 와야 합니다. 추가적으로 M<45에 대한 if문과 M>=45에 대한 if문을 밖에 빼놓고 계산을 하면 코드가 좀 더 깔끔해질 것 같습니다.
if M>=45:
if H>=1:
print(H+":"+M-45)
else: #H<1인 경우
print(0+":"+M-45)
else: #M<45
if H>=1:
print(H-1+":"+60-(45-M))
else: #H<1
print(23+":"+60-(45-M))
이런식으로요.
댓글을 작성하려면 로그인해야 합니다.
tom3805 1년 전
저 코린인데 뭐가 잘못된건지 모르겠어요 ㅠㅠ 도와주세요