문제
https://www.acmicpc.net/problem/10250
풀이
아이디어
- 101 -> 102 -> 103 -> ... -> 201 -> 202 이런 식으로 엘레베이터에 가까운 방 순으로 배정이 되는 문제
- 호텔 층수, 호수, 손님 방문한 순서 = h, w, n이면
- 층수는 n에서 h를 나눈 나머지, 호수는 n에서 h를 나눈 몫 + 1이 되는 규칙성이 있다.
- n이 h의 배수인 경우 몫에 + 1을 더해주지 않고, 나머지가 없으므로 층수는 h가 된다.
t = int(input())
for _ in range(t):
h, w, n = map(int, input().split())
num = n//h + 1
floor = n % h
if n % h == 0:
num = n//h
floor = h
print(f'{floor*100+num}')
- f-strings의 성능이 좋기 때문에 f-strings을 사용해 제출하는 것이 시간이 더 빠르다
- (참고: https://stackoverflow.com/questions/41481263/is-it-more-pythonic-to-use-string-formatting-over-string-concatenation-in-python, https://stackoverflow.com/questions/56587807/why-are-f-strings-faster-than-str-to-parse-values)
- 빠른 풀이
import sys
vc = int(sys.stdin.readline())
for i in range(vc):
vh, vw, vn = map(int, sys.stdin.readline().split())
if vn%vh == 0:
print(vh*100 + vn//vh)
else:
print(vn%vh*100 + vn//vh +1)
참고
백준
https://ooyoung.tistory.com/88
'Algorithms > 코테 문풀' 카테고리의 다른 글
[백준 10828번] 스택 (0) | 2023.08.13 |
---|---|
[백준 2475번] 검증수 (0) | 2023.08.12 |
엘리스 - 문자열 앞뒤 검사하기(py), Palindrome (0) | 2023.07.18 |
[Greedy] 엘리스 - 구슬 꾸러미(py) (0) | 2023.07.18 |
[프로그래머스] 바탕화면 정리 - JS (0) | 2023.06.24 |