백준 10250번 풀이

문제

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

풀이

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 줬잖아요.