Algorithm/BOJ
[백준/10250] ACM 호텔 (with 파이썬)
Potato potage
2022. 10. 24. 15:41
반응형
✔ 문제
✔ 풀이
👻 틀린 코드 (예외 처리 부족)
t = int(input())
for _ in range(t):
h, w, n = map(int, input().split())
y = n % h
x = (n // h) + 1
if x < 10:
print(y, 0, x, sep='')
else:
print(y, x, sep='')
⭕ 정답 코드
t = int(input())
for _ in range(t):
h, w, n = map(int, input().split())
y = (n % h) * 100
x = n // h
if y == 0:
y = h * 100
print(y + x)
else:
print(y + x + 1)
✔ 설명
y가 0일 경우를 생각해야한다. 예를 들어 h가 5일 경우 n이 10, 15라면 방 호수는 502, 503호가 된다.
하지만 h가 5일때 n이 7로 들어왔다면 방 호수는 202호임을 알 수 있다.
n이 y의 배수일 경우에는 호텔의 가장 위층이기 때문에 h * 100 + n // h 가 방 호수가 되고
n이 y의 배수가 아닐 경우에는 (n % h) * 100 + (n // h) + 1이 방 호수가 된다.
✔ 후기
문제를 보고 대충 공식을 찾고 나서 예제 문제는 통과과 되길래 쉽네~ 했는데 n이 h의 배수로 들어오는 예외를 처리하지 않아서 계속 틀렸었다 (〃⌒▽⌒〃)ゝ
그리고 처음에는 층수 * 100을 할 생각이 안들어서 호수를 기준으로 (y, 0, x, sep='') 이나 (y, x, sep='') 로 출력했는데 그냥 y에 * 100하면 되는... 간단한... 방법을 생각을 못했었다.
반응형