파이썬

백준 2577번 숫자의 개수 (파이썬)

ho코딩 2024. 3. 7. 12:42

 

문제를 먼저 이해해보면

 

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 올려 다음 반복을 진행.