본문 바로가기
Algorithm

[Baekjoon] - 함수

by Jiseong 2021. 6. 1.

 

[15596]

def sumN(a):
    return sum(a)
-----------------------------
def sumN(a):
	total = 0
    for i in a:
    	total += i
    return total

 

[4673]

import sys

natural_n = set(range(1,10001)) #natural_n 변수에 set자료형(중복 방지)으로 1~10000까지 저장
generate_n = set() #generate_n 생성자 저장할 set 선언

for i in range(1,10001): #i = 343
    for j in str(i): #j = '3','4','3'
        i += int(j) # i = 343 + 3 + 4 + 3 = 353, 353은 생성자 있는 수
    generate_n.add(i) #고로 generate_n에 추가 저장
self_num = sorted(natural_n - generate_n) #셀프넘버 = 1~10000까지 자연수 - 생성자, 셀프넘버 = 생성자X
for i in self_num:
    print(i)
#sorted 안쓰면 순서대로 나오지않음

 

[1065]

 

문제 자체를 이해하기가 좀 어려웠는데 여기서 말하는 한수는 예를 들어 246를 두면 각 자리수 2, 4, 6이 등차수열을 이루는 수를 말한다.

예외 사항을 생각해보면.. 1~99까진 모두 한수이다.

1~9까진 자리수가 자기 혼자니깐

뭐 15를 예를 들면 1, 5밖에 없으니 등차가 4인 수열인 것이다.

import sys

input = sys.stdin.readline

n = int(input())
count = 0 #한수 카운트

for i in range(1,n+1):
    if i < 100: #1~99까지 모두 한수
        count += 1
    else:
        nums = list(map(int, str(i))) #i = 246 -> str(i) = '2','4','6' -> int, nums = [2,4,6]
        if nums[1] - nums[0] == nums[2] - nums[1]: #등차비교
            count += 1
print(count)

 

어렵다. 난 한참 멀었다. 우울하다.

'Algorithm' 카테고리의 다른 글

[Baekjoon] 11720: 숫자의 합  (0) 2021.06.01
[Baekjoon] 11654: 아스키 코드  (0) 2021.06.01
[Baekjoon] - 1차원 배열  (0) 2021.06.01
Baekjoon - while  (0) 2021.05.30
Baekjoon - for  (0) 2021.05.30

댓글