[BOJ](python) 10250 _ ACM 호텔

berry ·2022년 2월 12일
0

Practice

목록 보기
22/23

10250_ ACM 호텔


🏁 내 풀이

# 10250 _ ACM호텔

for _ in range(int(input())):
    h,w,n = map(int, input().split()) 
    floor = n%h # n번째 손님은 n-1번째 까지 채우고 난 층이므로 나머지
    room = (n//h)+1 # n-1 번째까지 채운 라인 다음 라인
    if floor == 0: # 나머지가 0이면 제일 꼭대기 층이므로 
        floor = h # 꼭대기 층
        room -= 1 # 다음 라인으로 안가므로 꽉 채운 라인 층
    print(floor * 100 + room)

10번째 손님이라면,
정문에서 가까운 (거리가 1인) *01 호수의 모든 층이 차고
그 다음 아래층부터의 10-h의 높이에 묵게 된다.

floor(앞 호실의 모든 층이 차고 남은 층) : n%h

방 번호는 앞의 라인이 전부 찼을 때 그 다음 라인이므로

room(방 번호): n//h + 1

조건문

n%h가 0이 된다면, 나머지가 없다
= 다음 라인으로 가지 않는다
= 제일 꼭대기 층이다
n%h == h

n//h + 1은 앞의 라인이 전부 찼을 때 다음 라인을 뜻하므로 - 다음 라인이 아닌 그 라인이니까

제일 꼭대기 층의 방번호: (n//h + 1) - 1


(조건문을 안 붙여서 틀렸었음 ㅎ)
항상 생길 수 있는 모든 조건 생각하기!

profile
Engineer

0개의 댓글