본문 바로가기
코딩공부/백준 (python)

[백준 2577] 숫자의 개수 (Python)

by CodingKwon 2022. 2. 22.

문제 링크

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

 

나의 코드 (Python)

# 각 자리를 카운팅할 배열
cnt = [0] * 10

# 입력값
a = int(input())
b = int(input())
c = int(input())

# 숫자의 곱
res = str(a * b * c)

for i in res:   # 각 자리를 카운팅
    for j in range(10): # 0~9를 돌면서 해당 자리수를 카운팅
        if int(i) == j:
            cnt[j] += 1
            break

# 결과 출력
for k in cnt:
    print(k)

 

세 숫자의 곱에 각 숫자들이 어떤 숫자들로 이뤄지는지 숫자들이 몇 번씩 쓰였는지를 출력합니다.

세 숫자의 곱은 str로 감싸서 반복문을 통해서 한 글자씩 분리할 수 있습니다.

이를 for j in range(10):을 통해서 0~9와 비교합니다.

해당 되는 숫자를 만나면 cnt[j] += 1 을 통해서 카운팅합니다.

이를 for 문으로 출력합니다.

 

다른 풀이

# 세 숫자 입력
a = int(input())
b = int(input())
c = int(input())

# 세 숫자의 곱
result = list(str(a * b * c))

# 각 자리 수 카운팅
for i in range(10):
    print(result.count(str(i)))

 

 

댓글