문제를 먼저 이해해보면
1. 숫자 3개를 입력받습니다.
2. 각 숫자를 곱하고 결과값에서 사용된 수 (0~9)의 개수를 한 줄씩 출력합니다.
A = int(input())
B = int(input())
C = int(input())
num= A*B*C
digit_list = [i for i in str(num)]
i = 0
while(i<10):
count = digit_list.count(str(i))
print(count)
i+=1
제 풀이방법입니다. 더 좋은 방법이 있을 수 있습니다!
1. 먼저 A,B,C 변수를 선언하고 input() 함수를 통해 입력을 받은 다음 int() 함수를 통해 int형으로 형변환 해줍니다.
2. 그 다음 num 변수에 각 변수의 곱 결과를 저장해줍니다
3. 이제 num 값의 수를 카운트 하기 위해서 각 자리를 리스트화해서 저장해줍니다
ex) num = 4512 라면 ['4','5','1','2'] 로 저장해줍니다.
digit_list = [i for i in str(num)]
이 부분을 더 자세히 살펴보면 먼저 num 값은 현재 int형 입니다.
하지만 각 자리수를 카운트 해야하기 때문에 문자열로 바꾸어 리스트로 바꿔줘야합니다.
그렇기 때문에 str(num)에 대해서 각 자리 수를 i로 가져와 그 i를 리스트 요소로 추가합니다.
ex) num이 1313이라면 str(num)함수로 "1313"로 만들고,
각 반복마다 i에 1->3->1->3을 가져옵니다. 그리고 그 i 값을 리스트 요소로 추가합니다.
4. 마지막으로 list에 저장된 요소를 순회하며 리스트에 있는 값을 찾아 카운트합니다.
ex) i=0 의 순서에서 count = digit_list.count(str(i))는 digit_list에서 "0" 요소를 찾아 카운트하고 count변수에 그 수를 저장
그리고 그 count값을 출력한 다음, i의 값을 1 올려 다음 반복을 진행.
'파이썬' 카테고리의 다른 글
백준 27866번 문자와 문자열 (파이썬) (0) | 2024.03.07 |
---|---|
25083번 새싹 출력 (0) | 2024.03.07 |
백준 1330번 두 수 비교하기 (파이썬) (0) | 2024.03.07 |
백준 1157 단어공부(파이썬) (0) | 2024.03.06 |
백준 1152번 단어의 개수 (파이썬) (0) | 2024.03.05 |