
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
1. 1 ~ 10,000까지 배열을 만들어 숫자 1개씩 문자열로 만들어 8이 있는지 확인
2. 8이 있으면 그 숫자를 한번더 비교해 8에 개수를 확인
num = 8
count = 0
for i in range(1,10001):
comfirm = str(num) in str(i)
if comfirm == True:
for j in str(i):
if j == '8':
count +=1
print(count)

1 ~ 10,000까지 배열을 만들어 숫자 1개씩 문자열로 만들어 8을 찾는다for i in range(1,10001):
comfirm = str(num) in str(i)
8이 있으면 그 숫자를 한번더 비교해 8에 개수를 확인if comfirm == True:
for j in str(i):
if j == '8':
count +=1
print(count)
각 자리마다 8이 있으면 다시 for 문을 돌려 count 를 더하려고 for 문을 사용했다.
print(str(list(range(1, 10001))).count('8'))
1~10,000까지 범위 리스트를 작성하여 문자로 만들어야 count를 했을때 8을 포함한 글자 수를 찾을수 있다. 만약 리스트 형식에서 count를 사용하면 8과 같은 숫자만 증가하여 1이 나오는데 문자열로 바꿔줘 8에 숫자를 전부 찾는다.
문자열 안에서 찾고 싶은 문자의 개수를 찾을 수 있다. count 함수는 튜플, 리스트, 집합과 같은 반복 가능한 자료형에서도 사용 가능하다.
변수.count(찾는요소)
변수 안에서 해당 값의 개수를 숫자로 반환
'ooyyy'.count('y')
3
b = 'ox o x oxoxox'
b.count('ox')
4
>>> a = [1, 1, 1, 2, 3]
>>> a.count(1)
3
>>> ['ox', 'o', 'x', 'oxoxox'].count('ox')
1