코딩테스트/백준 준비(과거)

(파이썬) 백준 4673, 1065

junjunjun 2021. 6. 26. 17:42
반응형

4673 셀프 넘버

무지한 방법 .. 1부터 10000까지 다 구해주는 방법.

arr =[0]*10000
for i in range(10000):
    sum=0
    strI = str(i)
    sum += i
    for j in strI:
        sum +=int(j)
    if sum >= 10000:continue
    arr[sum]+=1
for i in range(10000):
    if arr[i]==0:
        print(i)

set을 이용한 방법도 있는데 시간이나 메모리는 비슷하다.

 

1065 한수

def a(n):
    if n < 100:           #100이하의 n의 한수의 개수는 n개
        return n
    count = 99
    for i in range(100,n+1):
        intArr = list(map(int,str(i)))
        if intArr[1] - intArr[0] ==intArr[2] - intArr[1]:  # 등차수열 확인
            count+=1 
    return count
   
n = int(input())
print(a(n))

    
반응형