출처
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.
](https://www.acmicpc.net/problem/2577)
내 풀이
num1 = int(input())
num2 = int(input())
num3 = int(input())
# 일단 num1 * num2 * num3의 계산결과 알기
# 그리고 인덱싱을 통한 비교를 위해
# 구한 X의 타입을 str로 바꿔주기
X = num1 * num2 * num3
X = str(X)
# 0~9의 숫자를 비교하기 위해 range(10)으로 반복문 돌려주기
# 그 안에 X들을 비교하기 위해 X의 개수만큼 또 반복문 돌려주기
# num 리스트에 각 숫자(0~9)의 개수를 넣어주는 것
num = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(10):
for j in range(len(X)):
if i == int(X[j]):
num[i] += 1
# num리스트 안의 요소를 출력하기
for k in range(10):
print(num[k])
헷갈렸던 점
이중 for문 안에 if문에서 비교를 할때 처음에 자료형을 맞춰주지 않아 비교연산자가 수행되지 않은 것을 확인했다.
그러다가 str[i] == X[j]
으로 고쳐주었는데 실행되지 않는 것을 확인했고 i == int(X[j])
로 고쳤을때 비로소 올바르게 실행됨을 확인하였다.
따라서 비교를 할땐 자료형을 맞춰주되, int형으로 맞춰주는 것을 생각하도록 하자.
추가풀이1
FirstN = int(input())
SecondN = int(input())
ThirdN = int(input())
result = str(FirstN * SecondN * ThirdN)
for i in range(10):
sum = 0
for j in range(len(result)):
if i == int(result[j]):
sum += 1
print(sum)
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
BOJ 1074 "Z" (0) | 2022.09.18 |
---|---|
[백준] 파이썬(python), 자바(Java) 10872 (0) | 2020.05.10 |
[백준] 파이썬(python) 2920 (0) | 2019.09.20 |
[백준] 파이썬(python) 10951 (0) | 2019.07.17 |
[백준] 파이썬(python) 10952 (0) | 2019.07.16 |