"""
구글 입사문제 중에서
--------------------
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
"""
"""
풀이 방법
10,000 에는 8 이 없으니 무시하고, 1 부터 9999 까지
X X X 8 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)
X X 8 X 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)
X 8 X X 인 경우 : 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)
8 X X X 인 경우 ; 1,000개 ( X X X 는 세자리이므로 0 0 0 ~ 9 9 9 까지 천개)
총 4,000 개 아닌가?
"""
"""
Java로 풀면
public class CountingEight {
public static void main(String[] args) {
for (int i=0; i<=10000; i++){
searchEight(i);
}
System.out.println("1에서 10,000 사이에 존재하는 8의 개수는? "+count);
}
private static int count = 0;
public static void searchEight(int num){
if (num%10==8) count++;
if (num>10) searchEight(num/10);
}
}
"""
"""
C로 풀면
int count = 0;
for(int i = 1; i < 10001; i++)
{
for(int j = i; j > 0; j /= 10)
{
if(j % 10 == 8)
{
count++;
}
}
}
"""
# 그럼 파이선은?
print(str(list(range(1, 10001))).count('8'))