문제번호 2884번 알람시계
H M값을 입력하면 45분 전의 값을 출력해야 한다. 24시간 시계를 기준으로 하고 24:00은 0:00으로 해야 한다.
정수 범위 : (0 ≤ H ≤ 23, 0 ≤ M ≤ 59)
답안 :
1 H, M=input().split()
2 H, M=int(H),int(M)
3 if H > 0 :
4 if 0 <= M-45 < 60 :
5 print(H, M-45)
6 else : # M-45 < 0
7 print(H-1,M+15)
8 else: # H <= 0 :
9 if 0 <= M-45 < 60 :
10 print(H, M-45)
11 else : # M-45 < 0
12 print(23,M+15)
comment :
# H, M를 input으로 입력받아주고, 정수형으로 바꿔준다.
# 0시일 때와 그렇지 않을 때로 조건문을 통하여 나누어주고, 45분전이 시간이 바뀔때와 그렇지 않을 때로 조건문을 한번 더 취해주어 나눠준다.
# 1, 2번줄을 map함수를 통하여 한 줄로 적을 수 있다.
H, M = map(int, input().split())
# 다른 풀이를 보았을 때 시간, 분을 하나로 합쳐 45분 전으로 되돌린 후 다시 시간과 분으로 나누는 코드도 있다는 것을 깨달았다. 만약 45분전이 0보다 작을 경우 24시간을 더해주어야 했다.
----------------------------------------------------------
문제번호 2525번 오븐 시계
첫째 줄에 현재 시각을 H(0 ≤ H ≤ 23) M(0 ≤ M ≤ 59)으로 입력한다. 둘째 줄에는 요리하는데 필요한 시간 C(0 ≤ C ≤ 1,000)을 분단위로 입력한다. 그 후 종료되는 시각의 시 분을 출력해야 한다.
답안 :
1 H, M = map(int,input().split())
2 C = int(input())
3 total = H * 60 + M + C
4 H, M = total // 60, total % 60
5 if H >= 24 :
6 H -= 24
7 print(H,M)
8 else:
9 print(H,M)
comment :
# map 함수로 정수형으로 바로 변수들을 받아주고, C도 int(input())을 통하여 받아준다.
# 시간, 분을 분으로 통합시켜 더해준다.
# 몫과 나머지 연산자를 통하여 시간과 분으로 다시 나누어준다.
# 만약 24시가 넘어간다면 24를 시간에서 빼준다.(C의 최대값을 더해도 48을 넘어가지 않으므로 while반복을 할 필요가 없다.)
# 그 후 값을 출력해준다.
# 다른 풀이를 보았을 때 total과 조건문을 사용할 필요 없이 바로 수식을 이용하여 출력할 수 있다는 것을 알게 되었다.
----------------------------------------------------------
문제번호 2480번 주사위 세 개
a b c의 주사위 값을 입력했을 때 조건에 따라서 상금값을 출력해야 한다.
답안 :
1 a, b, c= map(int, input().split())
2 if a == b == c :
3 print(10000 + a * 1000)
4 elif a == b or a == c :
5 print(1000 + a * 100)
6 elif b == c :
7 print(1000 + b * 100)
8 else:
9 print(max(a,b,c)*100)
comment :
# map 함수를 통하여 정수형으로 값을 받아준다.
# 각각의 조건에 따라서 상금값을 출력하도록 조건문을 작성해준다.
'프로그래밍 > 파이썬 python' 카테고리의 다른 글
단계별로 풀어보기 3 - 반복문(2) (0) | 2023.07.23 |
---|---|
단계별로 풀어보기 3 - 반복문 (0) | 2023.07.22 |
단계별로 풀어보기 2 - 조건문(1) (0) | 2023.07.20 |
단계별로 풀어보기 1 - 입출력과 사칙연산(3) (0) | 2023.07.19 |
단계별로 풀어보기 1 - 입출력과 사칙연산(2) (0) | 2023.07.18 |