[파이썬/python] 백준 28135번 : Since 1973 (🥉3)

 

나의 풀이:

import sys
input = sys.stdin.readline

n = int(input())
cnt = 0
if n <= 50:
    print(n)
else:
    for i in range(50,n):
        if "50" in str(i):
            cnt += 1
    print(n + cnt)

n이 50과 같거나 작을 경우엔 n이 그대로 출력되게 하였다.

그렇지 않을 경우 for문을 돌려 i에 50이 포함되어 있을 때마다 cnt변수를 1씩 증가시켜 주었다.

그리고 n과 cnt를 더한 값을 출력하면 되는데,

'몇 번째 수를 셀 때 n이 처음 등장하는지'를 구하여야 하기 때문에, n에 50이 포함되어 있을 때는 n번째에서 카운트를 하지 않은 값을 출력해야 한다. (50은 50에서 처음 등장하는 것처럼) 따라서 for문의 범위는 바로 직전의 카운트 값까지만 포함될 수 있도록 50, n+1이 아닌 50, n으로 설정하였다.

 

 

comment