728x90
https://www.acmicpc.net/problem/2577
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
내 코드
mul = 1
for i in range(3):
num = int(input())
mul *= num
lst_mul = list(str(mul))
new_lst = [0]*10
for i in range(len(lst_mul)):
new_lst[int(lst_mul[i]) % 10] += 1
for i in range(len(new_lst)):
print(new_lst[i])
3개의 값을 모두 곱한 값을 mul에 바인딩한다.
mul의 값을 리스트형태로 찟어놓은 후 0~9가 각각 몇 개씩 들어있는지 확인할 리스트를 선언해준다.
각 자리수의 10을 나눈 나머지는 mul의 각 자리수가 된다.
lst_mul에서 0~9까지 각각 몇개 있는지 구분하기 위해 new_lst[0] ~ new_lst[9]에 1씩 더해주는 방법을 사용했다.
다른 사람 코드
n=[int(input()) for x in range(3)]
m=n[0]*n[1]*n[2]
for x in range(10):
print(str(m).count(str(x)))
리스트와 for문을 결합하여 정수 3개를 입력받자마자 리스트 형태로 바인딩한다.
정수 3개의 곱을 m으로 받은 후 문자형으로 형변환한다.
count 함수를 이용하면 문자열에서 count함수의 인자 값이 몇개가 들어있는지에 대한 값을 반환받을 수 있다.
for문으로 0~9까지의 인덱스 값을 count 함수의 인자값으로 던져주고, 필요한 값을 반환받는다.
728x90
'알고리즘 문제 풀이' 카테고리의 다른 글
[python] 백준 2920 : 음계 (0) | 2022.01.28 |
---|---|
[python] 백준 2908 : 상수 (0) | 2022.01.27 |
[python] 백준 1152 : 단어의 개수 (0) | 2022.01.23 |
[python] 백준 2884 : 알람시계 (0) | 2022.01.23 |
[python] 알고리즘 문제 풀이에 자주 사용되는 함수 정리(계속 추가됨) (0) | 2022.01.19 |