알고리즘/Java
[python] ACM호텔(10250)
유리코딩
2021. 12. 25. 21:45
반응형
알고리즘
python ACM호텔(10250)
1. 문제
https://www.acmicpc.net/problem/10250


2. 풀이
- 층수와 호수를 구분하여 구한 뒤 더해준다.
- 인원수를 높이(층수)로 나눈 나머지가 0일 경우 층수는 높이에 100을 곱해주고 / 호수는 인원수를 층수로 나눈 정수값으로 한다.
- 인원수를 높이로 나눈 나머지가 0이 아닌 경우 층수는 인원수를 높이로 나눈 수에 100을 곱해주고 / 호수는 인원수를 높이로 나는 수의 정수값에 1을 더해준다
- 각각 나온 층수와 호수를 더해서 출력한다.
t = int(input())
for i in range(t):
H, W, N = map(int, input().split())
f = 0 # 층
ho = 0 # 호수
# 인원/층의 나머지가 0일 때
# 예시 5, 10, 10
if N % H == 0:
f = H * 100 # 500
ho = N // H # 2
# 예시 5, 10, 9
else:
f = (N % H) * 100 # 5/9 ... 400
ho = 1 + N // H # 1+1 = 2
print(f+ho) # 502 / 402
[느낀점]
인원을 높이로 나눴을 때 나머지가 0인 경우와 0이 아닌 경우로 나눠 계산해야하는 방법이 바로 떠오르지 않았다. 조금 더 알고리즘 적으로 사고하는 방법을 연습해야겠다.
반응형