본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#277 백준 파이썬 [16676] 근우의 다이어리 꾸미기

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

 

SOLUTION

처음에 해당 수만 표시하면 되는줄로 알고 했다가 틀렸다. 

0부터 N까지 전부다. 문제를 잘보자

정답률 낮은 이유가 쉽게 보고 빨리 풀어서 그런듯하다. 근데 다르게 풀어도 쉽긴 하다.

스티커 덱은 같은 수를 두번 쓰는 경우 증가한다.

 

1: 0

2: 11

3: 111

4: 1111

5: 11111

...

1이 연속되는 수가 해당 스티커를 필요로하는 최소 숫자다. 5개가 필요한 최소 연봉은 11111 이란 것.

따라서 주어진 수가 어디 사이에 위치해있는 지만 알면 쉽게 풀 수 있다.

파이썬으로 수를 str로 바꾸고, 1을 추가해주고 다시 int로 바꾸어서 크기를 대조해보았다.

 

PYTHON CODE

N = int(input())
card = 1

if N <= 10:
    print(1)
    
else:
    while N >= card:
        card = str(card)
        card += '1'
        card = int(card)
    
    print(len(str(card//10))) #현재 card는 N보다 더 큰수이기에 10으로 나누어주어 자리 수를 구한다