문제
https://www.acmicpc.net/problem/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 줬잖아요.
'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 |