BOJ_단계별로 풀어보기_5. 함수 (파이썬, Python)

창고·2022년 11월 21일
0

https://www.acmicpc.net/step/5

1. 정수 N개의 합

def solve(a):
    t = 0
    for data in a:
        t += data
    return t

2. 셀프 넘버

dns = list()

def test(n):   
    if n < 10:
        dn = 2 * n
    elif 10 <= n < 100:
        dn = n + int(str(n)[0]) + int(str(n)[1])
    elif 100 <= n < 1000:
        dn = n + int(str(n)[0]) + int(str(n)[1]) + int(str(n)[2])
    elif 1000 <= n < 10000:
        dn = n + int(str(n)[0]) + int(str(n)[1]) + int(str(n)[2]) + int(str(n)[3])
    else:
        dn = n + int(str(n)[0]) + int(str(n)[1]) + int(str(n)[2]) + int(str(n)[3]) + int(str(n)[4])
        
    if n not in dns:
        print(n)
    dns.append(dn)

for i in range(1,10001):
    test(i)

3. 한수

def solve(n):
    count = 0
    if n == 1:
        return 1
    else:
        for i in range(1,n+1):
            if i < 100:
                count += 1
            elif 100 <= i <1000:
                d1 = int(str(i)[1]) - int(str(i)[0])
                d2 = int(str(i)[2]) - int(str(i)[1])
                if d1 == d2:
                    count += 1
            else:
                d1 = int(str(i)[1]) - int(str(i)[0])
                d2 = int(str(i)[2]) - int(str(i)[1])
                d3 = int(str(i)[3]) - int(str(i)[2])
                if d1 == d2:
                    if d2 == d3:
                        count += 1
    return count

a = int(input())
print(solve(a))
profile
공부했던 내용들을 모아둔 창고입니다.

0개의 댓글