Python/코딩도장 풀이 모음

[코딩도장] [Lv.1] 1~1000에서 각 숫자의 개수 구하기

Dailybook406 2022. 5. 9. 23:24

[ 문제 ]

예로 10 ~ 15 까지의 각 숫자의 개수를 구해보자

10 = 1, 0
11 = 1, 1
12 = 1, 2
13 = 1, 3
14 = 1, 4
15 = 1, 5

그러므로 이 경우의 답은 0:1개, 1:7개, 2:1개, 3:1개, 4:1개, 5:1개

 

[ 풀이 ]

# My solution
num_dict = {}    #1

for i in range(1,1000+1) :    #2
    for j in str(i) :    #3
        if j in num_dict :    #4
            num_dict[j] += 1
        else :    #5
            num_dict[j] = 1

print(num_dict)

실행결과

{'1': 301, '2': 300, '3': 300, '4': 300, '5': 300, '6': 300, '7': 300, '8': 300, '9': 300, '0': 192}
더보기
# 베스트 풀이 방법
count={ x:0 for x in range(0,10) }

for x in range(1,1001):
    for i in str(x):
        count[int(i)]+=1

print(count)

#1

각 숫자를 key로 할 딕셔너리 생성

 

#2

1~1000까지 각 숫자의 갯수를 세는 반복문

 

#3

입력받은 i의 각 자리 숫자를 구분

 

#4

만일 num_dict에 있는 숫자일 경우 해당하는 key의 value에 +1

 

#5

만일 num_dict에 없는 숫자일 경우 새로운 key:value(value는 1) 생성

 


https://codingdojang.com/scode/504?answer_mode=hide 

 

코딩도장

프로그래밍 문제풀이를 통해서 코딩 실력을 수련

codingdojang.com