문제
https://www.acmicpc.net/problem/10250
문제는 위 사이트를 참고해주세요.
풀이
T = int(input()) # 테스트 케이스 개수
roomNumList = [] # 방 번호를 저장하는 리스트
for i in range(T):
H, W, N = map(int, input().split())
floor = str(N % H) # 몇 층인지 저장
if floor == '0':
floor = str(H)
if N % H == 0:
pos = str((N // H))
else:
pos = str((N // H) + 1)
if len(pos) < 2:
pos = '0' + pos
roomNum = int(floor + pos)
roomNumList.append(roomNum)
for i in range(len(roomNumList)):
print(roomNumList[i])
위 코드가 처음 문제를 풀었을 때 작성한 코드이고
아래 코드가 중복되는? 조건들을 합쳐서 다시 작성한 코드입니다.
T = int(input())
for i in range(T):
H, W, N = list(map(int, input().split()))
if N % H == 0:
print((H * 100) + (N // H))
else:
print(((N % H) * 100) + (N // H + 1))
str로 형 변환을 할 필요도 없이, 그냥 층수에 * 100을 하면 해결됩니다.
N % H ==> 만약 10번째 방이라 가정하고 6층짜리 건물이면 10 % 6 == 4로 4층인걸 알 수 있습니다.
N % H == 0 이면 최고층이기 때문에 그냥 H를 써줍니다.
N // H == > 위와 동일한 조건 일때, 몫이 층수를 제외한 방 번호가됩니다.
N // H + 1 ==> 최고층을 제외하고는 +1을 해줘야 정확한 방 번호가 나옵니다.
결과
'IT > 알고리즘' 카테고리의 다른 글
1일 N알고리즘 - #20 (0) | 2020.05.21 |
---|---|
1일 N알고리즘 - # 19 (0) | 2020.05.20 |
1일 N알고리즘 - #17 (0) | 2020.05.19 |
1일 N알고리즘 - #16 (0) | 2020.05.18 |
1일 N알고리즘 - #15 (0) | 2020.05.18 |
댓글