list_A = [int(input()) for i in range(3)]
num = list_A[0] * list_A[1] * list_A[2]
list_B = [0 for i in range(10)]
while True:
if num == 0:
break
else:
list_B[num % 10] += 1
num //= 10
for i in list_B:
print(i)
엔터로 구분된 입력을 한 줄에 처리하기 위하여 리스트를 이용하였다. (list_A)
그리고 또 다른 중요한 리스트인 list_B 아래와 같이 초기화를 해주었다. 숫자가 나올 때마다 값을 1씩 올려줄 것이다.
list_B = [0,0,0,0,0,0,0,0,0] 이렇게 써줘도 무방하다.
list_B[0] | list_B[1] | list_B[2] | list_B[3] | list_B[4] | list_B[5] | list_B[6] | list_B[7] | list_B[8] | list_B[9] |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
나중에 첫 번째 줄에 0이 몇 번 쓰였는지, 두 번째 줄에 1이 몇번 쓰였는지를 이 리스트로 간단하게 대응시켜 표현할 수 있다. 리스트 0번째 요소 = 0이 몇 번 쓰였는지 = 첫 번째 줄 이런식으로 말이다.
while문의 else 에서는
곱셈의 결과를 num에 저장하고, 그 num의 1의자리 숫자를 나머지 연산을 통해 구하였다. num % 10
만약에 3456 % 10 = 6 을 나타낸다. 그래서 6이 나왔으니 list_B의 7번째 요소(7번째 줄)인 list_B[6]에 1의 값을 더해준다.
그리고 3456 // 10 = 345 이런식으로 숫자를 변형시켜준다는 뜻이다.
그리고 출력!
이건 다른 사람 풀이
a = int(input())
b = int(input())
c = int(input())
total_str = str(a*b*c) # 숫자를 곱해서 str타입으로 변환
for num in range(10): # 0부터 9까지
num_count = total_str.count(str(num))
print(num_count)
count 함수를 이용하였다. 오..훨씬 간단하다
'공부 > 알고리즘' 카테고리의 다른 글
[백준]1546_python파이썬 풀이 (0) | 2021.12.28 |
---|---|
[백준]3052_python파이썬 풀이 (0) | 2021.08.26 |
[백준]2562_python파이썬 풀이 (0) | 2021.08.17 |
[백준]10818_python파이썬 풀이 (0) | 2021.08.17 |
[백준]10871_python파이썬 풀이 (0) | 2021.08.17 |
댓글