jyamethyst21 님의 블로그

백준 2577번- '숫자의 개수' (PYTHON 풀이) 본문

CODING 💻

백준 2577번- '숫자의 개수' (PYTHON 풀이)

jyamethyst21 2025. 11. 8. 15:39

문제:

 

세개의 값을 입력받고 이를 곱한뒤 각 자릿수에 해당하는 수가 몇번 나왔는지 출력해주면 된다.

이때 출력순서는 0~9순서이다.

 

풀이:

a=int(input())
b=int(input())
c=int(input())
result = {}

mul = list(str(a*b*c))

for i in range(len(mul)):
    k=mul[i]
    if k in result:
        result[k] += 1
    else:
        result[k] = 1

for i in range(10):
    print(result.get(str(i),0))

풀이는 다음과 같다. 우선 수를 각각 입력받고 곱한 다음 각 자릿수만큼 리스트로 바꿔서 반복문을 돌기 쉽게 만들어준다.

이후 반복문을 돌면서 result 리스트에 값이 없으면 추가하고, 있으면 value 값만 1 더해주도록 한다. 그 후 get 함수를 사용해서 i를 str로 바꾸고(현재 i는 str 형태인데, for문의 i는 정수이므로 맞춰주는 역할) 해당 값이 result에 존재하면 value 값을, 없으면 0을 출력해서 에러 없이 예제대로 출력되게 한다.

get 함수는 딕셔너리 전용 함수로, 특정 키에 해당하는 값을 꺼내온다. 이를 활용하면 쉽게 풀 수 있다.