본문 바로가기
백준

[백준] 10250번 : ACM 호텔 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 9.
728x90
반응형

 

 

10250번: ACM 호텔

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. sys.stdin.readline() 함수를 사용하여 입력받기 위해 sys 모듈을 불러온다. import sys
  2. 테스트 케이스의 개수를 입력받는다. T = int(sys.stdin.readline())
  3. 각 테스트 케이스의 결과를 저장할 리스트를 생성한다. li = list()
  4. 테스트 케이스 횟수만큼 반복한다. for i in range(T)
  5. 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지 입력받는다. H, W, N = map(int, sys.stdin.readlin().split())
  6. 손님의 방 번호는 손님이 최소로 이동하는 방 번호인데, 그렇다면 층수별로 방을 채워야 한다. 각 층의 1번 방을 다 채우고 2번 방으로 넘어가야 손님이 최소한으로 이동하게 된다.
  7. 손님의 번호가 해당 호텔의 층수와 비례한다면 손님의 방은 최고 높이에 위치하며, 손님의 방 번호는 호텔 층수로 나눈 몫의 결과가 될 것이다. if (N % H == 0): room_num = (H * 100) + N // H
  8. 반면에 손님의 번호가 호텔의 층수와 비례하지 않는다면 손님의 방은 층수로 나눈 나머지 층에 위치할 것이며, 손님의 방 번호는 호텔 층수로 나눈 몫이 결과에 1을 더해준 값이 될 것이다. else: roon_num = (N % H * 100) + (N // H + 1)
  9. 정해진 손님의 방 번호를 결과 리스트에 추가한다. li.append(room_num)
  10. 모든 테스트 케이스의 결과가 구해지면 각 결과를 하나씩 출력한다. for i in li: print(i)
반응형

3. 소스코드

import sys

T = int(sys.stdin.readline())

li = list()

for i in range(T):
    H, W, N = map(int, sys.stdin.readline().split())

    if (N % H == 0):
        room_num = (H * 100) + N // H
    else:
        room_num = (N % H * 100) + (N // H + 1)
        
    li.append(room_num)

for i in li:
    print(i)
728x90
반응형