본문 바로가기
파이썬/연습하기

[파이썬]1~10,000까지 8의 개수 세기

by 코키드 Cokid 2022. 10. 24.
반응형

오늘은 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으로 간결하게 표현했을 뿐 원리는 같다.

 

반응형

댓글