2577호 : 숫자의 수
A는 첫 번째 줄에, B는 두 번째 줄에, C는 세 번째 줄에 있습니다. A, B, C는 모두 100보다 크거나 같고 1,000보다 작은 자연수입니다.
www.acmicpc.net
세 개의 자연수 A, B, C가 주어졌을 때, A × B × C를 계산한 결과에 0부터 9까지의 각 수가 몇 번 나오는지 계산하는 프로그램을 작성하시오.
예를 들어 A=150, B=266, C=427이면 A×B×C=150×266×427=17037300이고, 17037300에서 0은 3회, 1은 1회, 3은 2회, 7은 두 번 사용됩니다.
기입
A는 첫 번째 줄에, B는 두 번째 줄에, C는 세 번째 줄에 있습니다. A, B, C는 모두 100보다 크거나 같고 1,000보다 작은 자연수입니다.
누르다
첫 번째 행은 A × B × C의 결과에 0이 사용된 횟수입니다. 마찬가지로 2행째부터 10행째까지 A×B×C의 결과에 1부터 9까지의 각 숫자가 사용된 횟수를 1행마다 개별적으로 인쇄합니다.
샘플 입력 1 복사
150
266
427
예제 출력 1 복사
3
1
0
2
0
0
0
2
0
0
# 내가 처음에 접근한 방법(컴파일 에러)
a = int(input())
b = int(input())
c = int(input())
sum = str(a*b*c)
cnt = 0
for i in range(0,10):
if "i" in sum:
cnt += count(i)
else:
return 0
print(cnt, split="\n")
각 숫자의 개수를 세는 count() 부분에 문제가 있었습니다.
컴파일 오류가 발생했고 완전히 다른 방향으로 접근해야 한다고 생각했습니다.
아무튼 제가 아주 큰 실수를 저질렀습니다.
** .split()은 주어진 기호를 기준으로 요소를 분할하고 문자열 목록 형식으로 반환합니다.
** print( , sep =” )는 인쇄 시 특정 기호를 추가하여 별도로 표시
절대 해서는 안될 실수를 저지르는게 조금 부끄럽습니다.
# sol.1 (40ms)
a = int(input())
b = int(input())
c = int(input())
sum = str(a*b*c)
for i in range(0,10):
print(sum.count(str(i)))
** ‘string’.count(‘word’)는 문자열에서 특정 단어의 수를 세는 것을 의미합니다.
- \n 줄 바꿈으로 변경하고 인쇄
COS Pro 레벨 2 Python: 9.2 줄 바꿈 사용
이번에는 개행을 사용합니다. 먼저 이렇게 출력할 값을 여러 개 지정하면 모든 값이 한 줄에 출력됩니다. 그럼 여러 줄에 한 번에 값을 출력할 수는 없나요? 떨어져 있는
dojang.io