이번 문제는 자연수 세개를 입력받아 이를 곱한 결과값에서,
0~9까지의 숫자가 몇번 나오는지 차례로 출력하는 문제이다.
세 자연수의 곱을 한 자릿수로 분해하여 1차원 리스트에 순서대로 저장한다.
0~9까지의 1차원 숫자 리스트를 만들어둔다.
두 리스트를 2-Level의 Nested loop로 비교하여 1차원 숫자리스트에 곱셈분해리스트의 요소 중 몇개가 해당하는지 count하여 순서대로 출력한다.
#사전입출력설정
import sys
input = sys.stdin.readline
#입력
intInput = []
for i in range(3) :
intInput.append(int(input()))
#처리 및 출력
#(1)곱셈저장
mulResult = intInput[0]*intInput[1]*intInput[2]
print(mulResult)
#(2)결과값이 몇의자리 수인지 판별
# + 실시간 판별하며 각자리값 리스트에 저장
valList = []
tempDigit = mulResult
i = 0
while 1 :
valList.append(tempDigit % 10)#한자리수부터 순서대로 저장
tempDigit = tempDigit // 10 #총 자릿수판별
i += 1
print("tempD :{0}, 시도:{1}".format(tempDigit,i))
if tempDigit == 0 : #종료조건
break
print(valList)
포맷출력으로 요소들과 최종 저장된 요소리스트를 확인해 본 결과로 연산결과의 요소 분할 저장까지는 정상적으로 구현했음을 확인했다.
#사전입출력설정
import sys
input = sys.stdin.readline
#입력
intInput = []
for i in range(3) :
intInput.append(int(input()))
#처리 및 출력
#(1) 곱셈저장
mulResult = intInput[0]*intInput[1]*intInput[2]
#(2) 결과값이 몇의자리 수인지 판별
# + 실시간 판별하며 각자리값 리스트에 저장
valList = []
tempDigit = mulResult
i = 0
while 1 :
valList.append(tempDigit % 10)#한자리수부터 순서대로 저장
tempDigit = tempDigit // 10 #총 자릿수판별
i += 1
if tempDigit == 0 : #종료조건
break
#(3) count의 기준이 될 비교 리스트에 0~9 저장
numList= []
numList.extend(map(int,range(10)))
#(4) valList와 numList 0~9까지 비교 및 count 순차출력
count = 0
for i in numList :
for j in valList :
if j == i :
count += 1
print(count)
count = 0