
📍In a nutshell...
세 개의 자연수를 입력받고, 모두 곱해서 나온 값의 각 숫자 개수를 1~9까지 차례대로 출력하는 문제다. key point는 자연수 3개 곱한 값을 개별 숫자로 쪼개는 것이다.(str() ,int() 활용)
a = int(input())
b = int(input())
c = int(input())
mul = a*b*c
for a in str(mul):	#mul값을 문자로 변환 후, 개별 정수로 쪼개 list에 담는다. 
	new_mul = []
    new_mul.append(int(a))
    
for i in range(10):	#0부터 9까지 각 숫자의 개수를 차례대로 출력 
	print(new_mul.count(i))여기서 list comprehension을 문자로 사용하면 문자형->정수형 변환 및 append()가 한번에 처리된다. 
a = int(input())
b = int(input())
c = int(input())
mul = a*b*c
result = [int(a) for a in str(mul)]	#list comprehension 이용. 변수명은 result로 바꿈.
for i in range(10):
    print(result.count(i))개별 정수로 쪼개서 list에 담는 것은 구글링해서 힌트를 얻었다. (출처:stakeoverflow)

#3052번
수 10개를 입력받은 뒤, 이를 각각 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 문제다. 서로 다른 값만 남기려면 list()과 set()을 활용하면 된다. 
lst = []
for i in range(10):
    lst.append(int(input()))
    lst[i] % 42 
new_lst = set(lst)	#set()으로 변환해 중복값 제거 
print(len(new_lst))#1546번
첫째 줄에는 시험 과목 개수, 둘째 줄에는 각 과목 별 점수를 입력한다. 그리고 나서 점수 중 최대값 M을 골라, 점수/M*100으로 고친다. 이 때 새롭게 구해진 평균을 출력하면 된다. 
N = int(input())
score = lst(map(int,input().split()))
M = max(score)	#score[] 중 최대값 
new_score = [score[i]/M*100 for in range(N)]	#new_score[] 생성 (list comprehension 형태) 
new_average = sum(new_score)/len(new_score)		#새로운 평균 
print(new_average)
출처: 백준