티스토리 뷰

반응형
 

10250번: ACM 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수

www.acmicpc.net

 

풀이

간단하게 생각해보면 넓이 W는 의미가 없다. 왜냐하면 엘레베이터에서 가까운 순으로 번호가 채워지고, 결국엔 H부터 앞으로 채워지는 형태이기 때문이다.

 

따라서 손님이 채워지는 구조는 H만큼을 반복하는 패턴이 될 것이다. 따라서 몫과 나머지 문제라고 할 수 있다.

 

그렇다면 n을 h로 나눈 뒤, 몫으로 호수를 정하고(n번째 손님이 오면, 최대 층까지 이미 몇번이나 채워졌느냐)

나머지(몇 층까지 채워졌느냐)로 층수를 구하면 된다.

 

이때 나머지는 100을 곱해주면 층수를 쉽게 표현할 수 있다.(W<=99 이므로 가능)

 

import sys
t=int(sys.stdin.readline())
for i in range(t):
    h,w,n=map(int, sys.stdin.readline().split())

    if n%h==0:
        print(h*100+n//h)
    else:
        print(n%h*100+n//h+1)

 

 

한가지 더 고려하자면, 만약 꼭대기 층(예:h=6, 601호)이라면 n%h는 0이 된다.

즉, 0이 나오므로 이때는 그냥 h로 출력해주면 된다.

반응형