반응형
알고리즘
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이 아닌 경우로 나눠 계산해야하는 방법이 바로 떠오르지 않았다. 조금 더 알고리즘 적으로 사고하는 방법을 연습해야겠다.
반응형
'알고리즘 > Java' 카테고리의 다른 글
[python] 백준 설탕 배달(2839) (0) | 2021.12.26 |
---|---|
[python] 달팽이는 올라가고 싶다(2869) (0) | 2021.12.26 |
[python] 백준 더하기 사이클(1110) (0) | 2021.12.25 |
[JAVA] 프로그래머스 제일 작은 수 제거하기 (0) | 2021.11.12 |
[JAVA] 프로그래머스 이상한 문자 만들기 (0) | 2021.11.12 |