본문 바로가기

컴퓨터/BOJ

[BOJ](Python) 1075번 : 나누기 / string에 0을 채우는 방법

 

https://www.acmicpc.net/problem/1075

 

1075번: 나누기

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

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