백준 2577번 숫자의 개수
문제
100 이상 1,000 미만의 자연수 A, B, C가 한 줄에 하나씩 주어진다. A×B×C의 결과에 0부터 9까지의 숫자가 각각 몇 번 쓰였는지 한 줄에 하나씩 출력한다. 예를 들어 150, 266, 427이면 곱이 17037300이고, 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
풀이
세 수를 입력받아 곱한 뒤 str()로 문자열로 바꾸고, list()로 감싸 한 글자씩 담긴 리스트로 만든다. 이렇게 하면 각 자리 숫자가 문자열 하나씩 리스트에 들어간다. 이후 for문으로 0부터 9까지 돌면서, 숫자를 str(i)로 문자열로 바꿔 count()로 리스트에 몇 개 있는지 센다. 리스트의 원소가 문자열이므로 비교하는 값도 문자열이어야 한다.
a = int(input())
b = int(input())
c = int(input())
t = list(str(a*b*c))
for i in range(10):
print(t.count(str(i)))정수, 리스트, 문자열의 차이를 정확히 알지 못해서 30분 넘게 걸렸다. 이 개념들을 더 공부할 필요가 있다고 느낀 문제다.