코딩도장

숫자 세기 알고리즘

0부터 9999까지 8을 포함하지 않는 수는 총 몇개일까?

8, 108, 888, 9998 등은 8을 포함하고 있는 수입니다. 111, 299, 4 등과 같은 수는 8을 포함하지 않는 수 입니다.

2022年07月11日 21:15

Tae Joo

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

60개의 풀이가 있습니다. 4 / 6 Page

count=0
for a in range(10000):
 if(not '8' in str(a)):
 count += 1
print(count)

2022年11月18日 13:44

JH CH

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
count = 0
for i in range(10000):
 if str(i).count('8') > 0:
 continue
 count += 1
print(count)

2022年11月25日 15:24

SANGJIN PARK

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
package project1.project;
import java.util.ArrayList;
class calculate {
 int usedata;
 int appearancenumber;
 ArrayList<Integer> datalist = new ArrayList<Integer>();
 public calculate(int data) {
 this.usedata = data;
 }
 public void cal() {
 for (int n=0; n<usedata; n++) {
 String q = String.valueOf(n);
 ArrayList<String> s = new ArrayList<>();
 for (int r = 0; r<q.length(); r++) {
 char aaa = q.charAt(r);
 String aa = String.valueOf(aaa);
 s.add(aa);
 }
 if (s.contains("8")) {
 int mmm;
 } else {
 datalist.add(n);
 }
 }
 }
 public ArrayList<Integer> returndata() {
 return datalist;
 }
}
public class project {
 public static void main(String[] arg) {
 calculate c = new calculate(10000);
 c.cal();
 ArrayList<Integer> result = c.returndata();
 System.out.println(result.size());
 }
}

java로 풀었습니다

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

0부터 세어야 하기 때문에 return에서 'end값에 1을 더한 값'에서 8이 포함된 개수를 빼야 합니다. 매개변수로는 (9999, 8)을 주었고 결과는 6561이 나왔습니다.

 public static long count(int end, int target) {
 return (end + 1) - IntStream.rangeClosed(0, end).filter(v -> (v + "").contains("" + target)).count();
 // return (end + 1) - (int) IntStream.rangeClosed(0, end).filter(v -> String.valueOf(v).contains(String.valueOf(target))).count();
 }
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

include

int main() {

int sum = 10000;
for(int i=0;i<10000;i++){
 int temp = i;
 if(8000<=i && i<9000) sum -=1;
 else{
 i %= 1000;
 if(800<= i && i<900) sum -=1;
 else{
 i %= 100;
 if(80<=i && i<90) sum -= 1;
 else{
 i %= 10;
 if (i==8) sum -= 1;
 }
 }
 }
 i=temp;
}
printf("%d\n",sum);
return 0;

}

2023年03月27日 17:15

김남현

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
count = 0
for i in range(10000):
 if '8' in str(i):
 continue
 count += 1
print(count)

2023年04月03日 09:46

HoHyeon Kim

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
class FindNumber:
 def __init__(self,maxNum,findNum):
 self.maxNum = maxNum
 self.findNum = findNum
 def searchNum(self):
 list = []
 print("최대숫자:" ,self.maxNum , "찾을 수:", self.findNum)
 for x in range(0, self.maxNum):
 tempValue= str(x)
 if tempValue.find(str(self.findNum)) >=0 :
 list.append(x)
 # print(f"{tempValue} is contained {self.findNum}")
 return list
fn= FindNumber(1000,8)
list = fn.searchNum()
print(list)

2023年04月21日 10:55

Seokwoo Choi

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
print(len([i for i in range(10000) if str(i).count('8') == 0]))

2023年04月21日 11:43

졸린하마

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

경우의 수 문제이므로 코딩없이 간단히 풀 수 있습니다..^^ 총 4자리의 숫자이고, 각 자리에 0, 1, 2, 3, 4, 5, 6, 7, 9의 9개의 숫자 중 하나가 올 수 있으므로 9x9x9x9를 계산하면 6561로 답을 구할 수 있습니다.

2023年05月01日 14:46

Jisook

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
# 0-9999 중 8을 포함하지 않은 수 세기
noteight = 0
for i in range(10000):
 if "8" not in str(i):
 noteight += 1
print(noteight)

2023年05月10日 15:30

띵띵동

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.


언어별 풀이 현황
전 체 x 60
python x 43
기 타 x 12
cpp x 1
java x 3
cs x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /