[python_파이썬_Pass]백준_10250번_ACM 호텔_풀이
2024. 8. 19. 20:56ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/zD3naTrHxto?feature=shared
쉽지 않은 문제였다.
회사 점심시간을 활용해서 한 문제씩 풀려고 했는데 1시간 넘게 걸렸다.
<첫번째 코드>
생각없이 손부터 움직여서 생각나는대로 코드를 작성했다.
예시의 조건으로는 답이 나오는데 틀렸습니다.
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
"""첫번째 H, 두번째 W, 세번째 N"""
nums = list(map(int, input().split()))
floor = nums[2] % nums[0]
room = nums[2] // nums[0]
if room < 10:
print(f'{floor}0{room+1}')
else:
print(f'{floor}{room+1}')
<최종 코드>
생각을 하면서 풀었다.
처음에 층수를 결정하는 코드와 room을 결정하는 코드를 이원화 해서 각 조건에 맞게 규칙을 찾았다.
층수를 결정하는 것은 어렵지 않았으나 room을 결정하는 방법은 고민을 많이 했다.
import sys
input = sys.stdin.readline
T = int(input())
answer = ""
for _ in range(T):
"""첫번째 H(층), 두번째 W(가로 객실 수), 세번째 N(몇번째 손님)"""
H, W, N = list(map(int, input().split()))
answer = ""
"""층 결정"""
if N % H == 0:
answer += str(H)
else:
answer += str(N % H)
"""호실 결정"""
room = 1
"""room을 기본 1로 하고 W넘지 않을때 까지"""
while room <= W:
"""처음 N이 H*room보다 작을 경우 바로 계산"""
if N <= (H * room):
if room < 10:
answer += '0' + str(room)
break
else:
answer += str(room)
break
else: #처음 if가 거짓일 경우 room + 1을 해서 조건 만족
room += 1
"""출력"""
print(int(answer))
<다른사람 코드 참고>
나와 흐름은 비슷한데 간결하게 요약을 했다.
한번 복습이 필요하다.
import sys
input = sys.stdin.readline
case = int(input())
for i in range(case):
H, W, N = map(int, input().split())
Y = N % H
X = N // H + 1
if N % H == 0:
Y = H
X = N // H
if X <= 9:
X = '0' + str(X)
print(str(Y) + str(X))
728x90
반응형
'코드리뷰' 카테고리의 다른 글
[python_파이썬_Half Pass]백준_15650번_N과 M(2)_백트래킹_풀이 (0) | 2024.08.19 |
---|---|
[python_파이썬_Half Pass]백준_15649번_N과 M(1)_백트래킹_풀이 (0) | 2024.08.19 |
[python_파이썬_Pass]백준_2503번_숫자 야구_풀이 (0) | 2024.08.15 |
[python_파이썬_Pass]백준_2564번_경비원_풀이 (0) | 2024.08.12 |
★[python_파이썬_Fail]백준_2573번_빙산_풀이 (0) | 2024.08.06 |