https://www.acmicpc.net/problem/1075
N = input()
F = int(input())
for i in range(0, 100):
test = N[:-2] + '%02d' % i
if int(test) % F == 0:
print('{0:02d}' .format(i))
break
test를 주어진 값에서 뒤에 두 숫자를 제외한 것과 i를 00~99 까지 만들어서 합하고
이것을 F로 나누었을 때 0이 된다면 i에 0을 채워서 두자리로 출력한다.
1을 01로, 10을 10으로 만드는 방법에는 여러가지가 있다.
1. 내장함수 zfill()을 이용한다. >> string.zfill(원하는 0의 개수)
print('3'.zfill(4))
>>>00003
zfill()의 내장함수의 경우 string만 써야하기 때문에 지금 문제의 경우 쓸 수가 없다.
i = 3
print(i.zfill(5))
>>> AttributeError: 'int' object has no attribute 'zfill'
f = 3.5
print(f.zfill(5))
>>> AttributeError: 'float' object has no attribute 'zfill'
2. 내장함수 rjust()을 이용한다. >> string.rjust(x의 개수, x)
print('333'.rjust(5, '0'))
>>> 00333
마찬가지로 rjust()의 내장함수는 string만을 써야하기 때문에 현재 상황에서 쓸 수 없다.
3. 출력형태에서 0을 추가시키기 - f 포맷팅
i = 5
print('{0:02d}' .format(i))
>>> 05
이 경우 변수에 0을 추가시킬 수 있다는 장점으로 인해 현 문제에서도 이 방식을 사용하였다.
3-1. 출력형태에서 0을 추가시키기 - %를 이용한 포맷팅
i = 5
print('%02d' % i)
>>> 05
포맷팅 방법에는 여러가지가 있기 때문에 다른 포맷팅 방법을 통해 숫자에 0을 추가시킬 수 있다.
'컴퓨터 > BOJ' 카테고리의 다른 글
[BOJ](Python) 2053번 : 숫자 야구 (0) | 2020.08.29 |
---|---|
[BOJ](Python) 2089번 : -2진수 (0) | 2020.08.29 |
[BOJ](Python) 1975번 : Number Game (0) | 2020.08.29 |
[BOJ](Python) 1267번 : 핸드폰 요금 (0) | 2020.08.29 |
[BOJ](Python) 1236번 : 성 지키기 (0) | 2020.08.29 |