https://www.acmicpc.net/problem/10250
문제 풀이
- h를 이용해 푼다.
- 층은 n를 h으로 나눈 나머지이다. 만약 나누어 떨어진다면 그대로 h를 반환한다.
- 호수는 n을 h로 나눈 몫에 1를 더한 값이다. 만약 나누어 떨어진다면 그대로 몫을 반환한다.
solution - 실패/출력형식
import sys
T = int(sys.stdin.readline().strip())
for _ in range(T):
h,w,n = map(int, sys.stdin.readline().strip().split())
buliding, unit = [str(h), str((n//h))] if n%h == 0 else[ str(n%h),str((n//h)+1)]
print(f'{buliding}0{unit}')
틀린 이유
- 원인
- h = 10, w = 10, n = 100일때 기대값은 1010이지만 출력값은 10010이 나온다.
- 층과 호수의 몇 자리인지 상관없이 0을 구분으로 넣었기 때문이다.
- 해결
- 층은 그대로 출력하고 호수는 zfill(2)를 활용하여 일의 자리 수일때 앞에 0을 붙여 출력하게 한다.
solution - 최종코드/성공
import sys
T = int(sys.stdin.readline().strip())
for _ in range(T):
h,w,n = map(int, sys.stdin.readline().strip().split())
buliding, unit = [str(h), str((n//h))] if n%h == 0 else[ str(n%h),str((n//h)+1)]
print(buliding,unit.zfill(2),sep='')
0으로 자릿수 채우기 - zfill()
str.zFill(전체 자리 수)
print('5'.zFill(5)) # 00005
'algorithm > 백준' 카테고리의 다른 글
[PYTHON/파이썬] 1764 듣보잡 - Counter/Filter/setdefault (0) | 2023.02.15 |
---|---|
[PYTHON/파이썬] 2738 행렬 덧셈 (0) | 2023.02.09 |
[PYTHON/파이썬] 4949 균형잡힌 세상 - ()[]{}<> (0) | 2023.02.09 |
[파이썬/PYTHON] 1251 단어나누기 (0) | 2023.02.08 |
[PYTHON/파이썬] 1436 영화 감독 숌 - 완전탐색 (0) | 2023.02.08 |
댓글