꾸준히 합시다
백준 파이썬 10250번: ACM 호텔 본문
https://www.acmicpc.net/problem/10250
문제 유형: 수학, 구현, 사칙연산
# Solution 1
t = int(input())
for i in range(t):
h, w, n = map(int, input().split())
if n % h == 0:
floor = h * 100
room = n // h
else:
floor = (n % h) * 100
room = 1 + n // h
print(floor + room)
- 먼저 테스트 케이스의 개수 t를 정수형으로 입력받는다.
- 각각의 테스트 케이스마다 호텔의 층 수(h), 각 층의 방 수(w), 몇 번째 손님(n)인지를 map()을 이용해 정수형으로 입력받는다.
- n을 h로 나눴을 때 나머지를 구하고, 그 나머지에 100을 곱한 수를 층수(floor)로 정한다. 예를 들어 4층 1호라면 401호가 되기 때문에 100을 곱해야 하는 것. 1000이 아니라 100만 곱해도 되는 이유는 호실이 99호까지 밖에 없기 때문이다.
- n을 h로 나눴을 때의 몫에 + 1 한 값을 호(room)로 한다. (호가 1호부터 시작하기 때문에 1을 더해준다.)
- 이렇게 했을 때 주의할 점은 n을 h로 나누었을 때 나머지가 없는 경우이다.
- 그래서 if문을 작성하여 예외 처리해줘야 한다. 나머지가 0이면 이 나머지에 100을 곱해도 0이 되기 때문에 그냥 h에 100을 곱해준 수를 층수로 정한다. 예를 들어 6층짜리 호텔의 6번째 손님이라면 601호에, 12번째 손님이라면 602호에 묵게 되는 것이다.
'코딩 테스트 문제 풀이' 카테고리의 다른 글
백준 파이썬 1003번: 피보나치 함수 (0) | 2021.03.17 |
---|---|
백준 파이썬 1076번: 저항 (0) | 2021.03.17 |
백준 파이썬 18883번: N M 찍기 (0) | 2021.03.16 |
백준 파이썬 11721번: 열 개씩 끊어 출력하기 (0) | 2021.03.16 |
백준 파이썬 10798번: 세로읽기 (0) | 2021.03.16 |
Comments