반응형
문제
1부터 n까지 차례대로 써 내려갈 때 특정 숫자(digit)의 빈도수를 구하여 출력하는 프로그램을 작성하시오.
예를 들어, n = 11 이고 숫자 1의 빈도수를 구하라고 하면, 1 2 3 4 5 6 7 8 9 10 11 에서 숫자 1은 1에서 한 번, 10에서 한 번, 11에서 두 번 나타나므로 1의 빈도수는 총 4 이다.
문제풀이
#01
n,m=map(int,input().split())
arr=[i for i in range(1,n+1)]
cnt=0
#02
for i in arr:
i=str(i)
for j in i:
if(j==str(m)):
cnt+=1
print(cnt)
- #01 : 1부터 n까지의 리스트를 만든다.
- #02 : arr를 차례대로 i에 넣고 i를 차례대로 j에 넣는다.
이때 i가 int 형이면 for문을 사용할 수 없으니 str형으로 변환해준다.
이후 만약 j값이 str(m)값과 같다면 문제의 조건을 충족하니
개수(cnt)를 1개 더해준다.
이후 최종 개수를 출력해준다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 11004 파이썬 - K번째 수 (1) | 2022.12.17 |
---|---|
[알고리즘] 백준 1260 파이썬 - DFS와 BFS (0) | 2022.12.16 |
[알고리즘] 백준 4358 파이썬 - 생태학 (0) | 2022.12.14 |
[알고리즘] 백준 6571 파이썬 - 피보나치 수의 개수 (0) | 2022.12.13 |
[알고리즘] 백준 20291 파이썬 - 파일 정리 (0) | 2022.12.12 |