백준
[백준] 10250번 : ACM 호텔 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 9. 14:09
728x90
반응형
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하여 입력받기 위해 sys 모듈을 불러온다. import sys
- 테스트 케이스의 개수를 입력받는다. T = int(sys.stdin.readline())
- 각 테스트 케이스의 결과를 저장할 리스트를 생성한다. li = list()
- 테스트 케이스 횟수만큼 반복한다. for i in range(T)
- 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지 입력받는다. H, W, N = map(int, sys.stdin.readlin().split())
- 손님의 방 번호는 손님이 최소로 이동하는 방 번호인데, 그렇다면 층수별로 방을 채워야 한다. 각 층의 1번 방을 다 채우고 2번 방으로 넘어가야 손님이 최소한으로 이동하게 된다.
- 손님의 번호가 해당 호텔의 층수와 비례한다면 손님의 방은 최고 높이에 위치하며, 손님의 방 번호는 호텔 층수로 나눈 몫의 결과가 될 것이다. if (N % H == 0): room_num = (H * 100) + N // H
- 반면에 손님의 번호가 호텔의 층수와 비례하지 않는다면 손님의 방은 층수로 나눈 나머지 층에 위치할 것이며, 손님의 방 번호는 호텔 층수로 나눈 몫이 결과에 1을 더해준 값이 될 것이다. else: roon_num = (N % H * 100) + (N // H + 1)
- 정해진 손님의 방 번호를 결과 리스트에 추가한다. li.append(room_num)
- 모든 테스트 케이스의 결과가 구해지면 각 결과를 하나씩 출력한다. 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
반응형