본문 바로가기

Python/백준

[백준] 2577: 숫자의 개수 (Python)

2577번: 숫자의 개수


 

 

문제 출처:

https://www.acmicpc.net/problem/2577

 

 

 

 

 

코드 공유 (정답)

 

A = int(input())
B = int(input())
C = int(input())
N = list(str(A * B * C))
N_list = []
for i in N:
    nums = int(i)
    N_list.append(nums)
for j in range(10):
    print(N_list.count(j))

 

좀 어려운 문제를 풀어봐야 하는데... 아직 왕초보라 이정도 문제를 조금 많이 풀어도 나쁘진 않겠다는 생각이 들었다.

우선 A, B, C를 입력받았다. 그리고 세 개의 값을 곱한 것을 문자 자료형으로 변환한 후 리스트화하였다. 이렇게 하면 어떻게 되냐면, 만약 A, B, C가 10, 10, 10이라고 하자. 그럼 3개를 곱한 값은 100이고, 이를 문자 자료형으로 변환하면 '100' 이다. 이 값을 리스트화 하면 ['1', '0', '0'] 이 된다. 왜 이렇게 하려고 했냐면, count를 사용해 리스트 속 구성요소를 세기 위해서 그랬다. 편하게 0부터 9까지의 수가 몇개씩 있는지를 각각 세기 위해서 for문을 사용하려 했는데, 이걸 사용하려면 리스트속 값들이 string이 되면 안된다는 걸 느꼈고, 먼저 이 값들을 다시 int화 해야한다고 생각이 들었다. 그래서 다시 빈 리스트를 만들고, 리스트 속 각 요소들을 정수화시켜 다시 넣어주었다.. (이 파트가 너무 번잡한 것 같은데, 다시 더 어떻게 하면 간단하게 할 수 있을지 생각해 봐야겠다. 이게 과연 최선일까? 하는 생각.) 그리고 다시 for문을 사용해 0부터 9까지 수가 각각 몇개씩 있는지를 세어 보았다. 

 

오늘도 뭔가 어설프지만 하나 해냈다.

'Python > 백준' 카테고리의 다른 글

[백준] 1152: 단어의 개수 (Python)  (3) 2025.01.09
[백준] 3052: 나머지 (Python)  (3) 2025.01.07
[백준] 2562: 최댓값 (Python)  (1) 2025.01.06
[백준] 10818: 최소, 최대 (Python)  (0) 2025.01.06