본문 바로가기

코딩 테스트/백준 파이썬 문제 풀이

[백준 10250번 파이썬] ACM 호텔

https://www.acmicpc.net/problem/10250

 

이번 문제는 우선 케이스 개수를 입력받고

호텔의 높이, 호텔의 한 층 당 방 개수, 도착한 손님이 몇 번째 손님인지도 입력받은 후에

해당 손님이 이 호텔에서 몇 호실에 배정될지를 출력해주는 코드를 작성하면 된다

 

num = int(input())
for i in range(num):
    X, Y, Z = map(int, input().split())
    top = Z%X
    room = Z//X+1
    if top == 0:
        top = X
        room = Z//X
    print(f'{top*100+room}')

 

참고로 호텔 방을 배정하는 순서는 엘리베이터가 존재하는 왼쪽에서부터

아래에서 위 방향으로 진행된다

이 호텔 문제에서도 당연히 수식을 찾아내야 하는데

수식 관련 문제에서 쉽게 볼 수 있는 몫 나눗셈/나머지 나눗셈을 이용해서 이 문제를 풀 수 있다

즉, 7 번째 손님이 3층짜리 호텔에 가게 된다면

7을 3으로 몫 나눗셈한 결과는 2, 나머지 나눗셈한 결과는 1이다

여기에서 몫 나눗셈한 결과에 +1(층보다 작은 수들을 0번째 줄이 아닌 1번째 줄로 보기 때문에)을 한 뒤

[나머지 나눗셈 결과값]0[몫 나눗셈 결과값]

즉, 7번째 손님은 3층짜리 호텔에서 103호실에 배정받는다.