[문제] 백준 알고리즘 10250 (ACM 호텔) - python
> https://www.acmicpc.net/problem/10250
호텔의 H(층의 수), W(호의 수)와 N 번째 손님이 주어진다. (사실상 W의 의미는 H*W가 N보다 크기만 하면 된다.)
N번째 손님이 채워지는 방법은 간략하게 표현하면, H명이 차면 1호씩 늘어나는 셈이다.
따라서, 최대 호수는 N /H를 올림한 수이고, N % H가 마지막 호수에 남는다.
원래 올림은 math.ceil()을 써야하는데, N, H의 몫과 나머지만으로 해결 가능할 것 같아서 굳이 쓰지 않았다.
N%H가 0일 때만 N/H의 올림을 해도 값이 변함이 없는 것을 이용했다.
나머지가 0이 아닌 모든 경우는 N//H에 +1한 결과가 올림이다.
그래서 간편하게 divmod()를 이용해 div(=N//H)와 mod(=N%H)를 구한 다음,
mod가 0일때는 H와 div를 출력(mod가 0이므로 H로 출력), 그 외에는 mod와 div+1을 출력했다.
이렇게 구상했더니 코드는 아주 간단해졌고, 쉽게 풀렸다.
[Code]
T = int(input())
for _ in range(T):
H, W, N = map(int, input().split())
div, mod = divmod(N, H)
if mod == 0:
print('{}{:02d}'.format(H, div))
else:
print('{}{:02d}'.format(mod, div+1))
728x90
'백준 알고리즘(BOJ)' 카테고리의 다른 글
백준 알고리즘 2775 (부녀회장이 될테야) - python (0) | 2019.10.15 |
---|---|
백준 알고리즘 15650 (N과 M(2)) - python (0) | 2019.10.15 |
백준 알고리즘 15649 (N과 M(1)) - python (0) | 2019.10.15 |
백준 알고리즘 2869 (달팽이는 올라가고 싶다) - python (0) | 2019.10.15 |
백준 알고리즘 1011 (Fly me to the Alpha Centauri) - python (0) | 2019.10.15 |
댓글