반응형
오늘은 1에서 10,000 사이의 숫자들에서 8이 몇번 나오는지 세는 코드를 작성해보자.
1부터 10,000 사이에서 8의 개수 구하기
1부터 10,000까지의 숫자들에서 나타나는 모든 8의 개수를 구해야한다. 다음 예시를 보자.
1~20: 8, 18 → 2개
1~100: 8, 18, 28, 38, 48, 58, 68, 78 ,88, 98 → 11개
8688 안의 8의 개수는 3개, 1878 안의 8의 개수는 2개이다.
for문과 count함수 이용하기
count = 0
for i in range(1, 10001):
count += str(i).count('8')
print(count)
#결과 출력
4000
for문과 문자열의 count 함수를 이용하여 쉽게 답을 구할 수 있다.
count += str(i).count('8')을 하면 1부터 10000까지의 각 숫자들에서 8의 개수를 구하고 count 변수에 누적하여 합한다.
Comprehension으로 간결하게 표현하기
print(sum([str(x).count('8') for x in range(1, 10001)]))
#결과 출력
4000
위 코드는 첫번 째 for문으로 문제를 풀었던 것을 comprehension으로 간결하게 표현했을 뿐 원리는 같다.
반응형
'파이썬 > 연습하기' 카테고리의 다른 글
[파이썬]숫자의 제곱 사이클 구하기 (0) | 2022.10.28 |
---|---|
[파이썬]1~5000 사이의 셀프 넘버들의 합 구하기 (0) | 2022.10.26 |
[파이썬]1부터 1000까지 각 숫자의 개수 세기 (0) | 2022.10.23 |
[파이썬]짝수와 홀수 정리하기 (0) | 2022.10.22 |
[파이썬]3과 5의 배수 찾기 (0) | 2022.10.21 |
댓글