barcode

백준 10250번 풀이

BOJ/[BOJ] Python

문제

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

 

10250번: ACM 호텔

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

www.acmicpc.net

이건 내가 글로 요약을 못해요…

 

풀이

import sys
a = int(sys.stdin.readline())
for i in range(a):
    floor,room,order = map(int,sys.stdin.readline().split())
    print(order % floor) # 방 호수
# floor: 층
# room: 방 갯수
# order: 손님 몇번째세요?

일단 이렇게 하면 될 것 같지만, 이렇게 하면 딱 나눠 떨어질 때 0이 나와버려서 안된다. 그래서 if문을 도입해야 한다.

import sys
a = int(sys.stdin.readline())
# floor: 층
# room: 방 갯수
# order: 손님 몇번째세요? 
for i in range(a):
    floor,room,order = map(int,sys.stdin.readline().split())
    if order % floor == 0:
        print(floor)
    else:
        print(order % floor)

일단… 호텔이 6층짜리인데 6배수번째(6, 12, 18…) 방문객이 왔다, 그러면 n06호로 보내야 하므로 그대로 출력되게 한다.

import sys
a = int(sys.stdin.readline())
# floor: 층
# room: 방 갯수
# order: 손님 몇번째세요? 
for i in range(a):
    floor,room,order = map(int,sys.stdin.readline().split())
    if order % floor == 0:
        print(floor)
        print(order // floor)
    else:
        print(order % floor)
        print(order // floor)

그리고 또 이렇게 해버리면 6이랑 10이랑 몫이 같잖아요? 그래서 안됨.

import sys
a = int(sys.stdin.readline())
# floor: 층
# room: 방 갯수
# order: 손님 몇번째세요? 
for i in range(a):
    floor,room,order = map(int,sys.stdin.readline().split())
    if order % floor == 0:
        print(floor)
        print(-(-order // floor))
    else:
        print(order % floor)
        print(-(-order // floor))

아니 이거 말고 다른 방법 없냐고… 아무튼 큰 과제는 해결했고, 이제 출력만 하면 된다.

import sys
a = int(sys.stdin.readline())
# floor: 층
# room: 방 갯수
# order: 손님 몇번째세요? 
for i in range(a):
    floor,room,order = map(int,sys.stdin.readline().split())
    room_floor=-(-order // floor)
    if order % floor == 0:
        print("{0}{1}".format(floor,str(room_floor).zfill(2)))
    else:
        print("{0}{1}".format(order % floor,str(room_floor).zfill(2)))

zfill은 문자열의 앞을 0으로 채워주는… 이거 모듈이냐? 아무튼 그렇다. 방의 호수를 문자열로 만들고 zfill(2)를 주면 숫자가 한 자리일 때 앞에 0을 붙여서 01, 02, 03 이런 식으로 출력할 수 있다. 응? 저거 저렇게만 해도 되냐고? format 줬잖아요.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 2839번 풀이  (0) 2022.08.18
백준 2775번 풀이  (0) 2022.08.18
백준 2869번 풀이  (0) 2022.08.18
백준 1193번 풀이  (0) 2022.08.18
백준 2292번 풀이  (0) 2022.08.18