1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※(注記) 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
int cnt = 0;
for(int i = 1; i <= 10000; i++) {
String numStr = String.valueOf(i);
for(char c : numStr.toCharArray()) {
if( c == '8') {
cnt++;
}
}
}
출력 4000
2025年03月14日 13:57
eight_cnt = 0
for i in range(10000):
eight_cnt += str(i).count("8")
print(eight_cnt)
이미 print(str(list(range(10001)).count("8"))이 올라와 있어서 풀어서 하는 방법
2025年02月24日 14:28
'''
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※(注記) 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
'''
def examineNumber(repeat, num):
total = 0
for i in range(1, repeat + 1):
total += str(i).count(str(num)) # 문자열 변환 후 count() 사용
return total # return으로 값 반환
# 실행
print(examineNumber(10000, 8))
#repeat = int(input("찾을 범위 입력 : "))
#num = int(input("찾을 숫자 입력 : "))
#examineNumber(repeat,num)
2025年01月31日 04:24
JAVA입니다.
package 구글_입사문제_중에서;
public class Main {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 10000; i++) {
String numStr = Integer.toString(i);
for (Character c : numStr.toCharArray()) {
if (c == '8') {
count++;
}
}
}
System.out.println(count);
}
}
Array(10000).fill(1).map((i,idx)=>i+idx).join("").split("8").length-1
2024年12月19日 17:08
# 1개의 8이 있을 경우: 예) XXX8(* X는 8을 제외한 0 ~ 9까지의 숫자가 가능. 결국 9가지 방법이 가능)
# 4개의 자리에 8을 1개 할당하는 경우의 수는 조합으로 구함: C(4, 1) = 4!/1!(4-1)! = 4
# 경우의 수 x 9 x 9 x 9 x 8의 개수: 4 x 9 x 9 x 9 x 1 = 2916
# 2개의 8이 있을 경우: 예) XX88(* X는 8을 제외한 0 ~ 9까지의 숫자가 가능. 결국 9가지 방법이 가능)
# 4개의 자리에 8을 2개 할당하는 경우의 수는 조합으로 구함: C(4, 2) = 4!/2!(4-2)! = 6
# 경우의 수 x 9 x 9 x 8의 개수: 6 x 9 x 9 x 2 = 972
# 3개의 8이 있을 경우: 예) X888(* X는 8을 제외한 0 ~ 9까지의 숫자가 가능. 결국 9가지 방법이 가능)
# 4개의 자리에 8을 3개 할당하는 경우의 수는 조합으로 구함: C(4, 3) = 4!/3!(4-3)! = 4
# 경우의 수 x 9 x 8의 개수: 4 x 9 x 3 = 108
# 4개의 8이 있을 경우: 예) 8888(* X는 8을 제외한 0 ~ 9까지의 숫자가 가능. 결국 9가지 방법이 가능)
# 4개의 자리에 8을 4개 할당하는 경우의 수는 조합으로 구함: C(4, 4) = 4!/4!(4-4)! = 1
# 경우의 수 x 1 x 8의 개수: 1 x 1 x 4 = 4
import math
total = 0
for n in range(1, 5): # n: 8의 개수, 8이 없는 자리수: 4 - n
cnt = math.comb(4, n)
sum = cnt * 9**(4-n) * n
total += sum
print("total = ", total)
eight_num = 0
for n in range(1, 10000+1):
n_str = str(n)
eight_num += n_str.count('8')
print(eight_num)
2024年10月16日 19:14
풀이 작성