프로그래밍/파이썬 python

단계별로 풀어보기 2 - 조건문(2)

idealtrue 2023. 7. 21. 20:48
728x90

문제번호 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 함수를 통하여 정수형으로 값을 받아준다.

# 각각의 조건에 따라서 상금값을 출력하도록 조건문을 작성해준다.

728x90