#include <stdio.h>
int main()
{
int dec[10];
int i;
int temp;
for (int i = 0; i < 10; i++)
dec[i] = 0;
for (int i = 0; i <= 999; i++)
{
temp = i;
if (temp >= 100)
{
dec[temp / 100]++;
temp %= 100;
}
if (temp >= 10)
{
dec[temp / 10]++;
temp %= 10;
}
dec[temp]++;
}
for (i = 0; i < 10; i++)
printf("%d's count : %d\n", i, dec[i]);
return (0);
}
➜ project ./a.out
0's count : 100
1's count : 300
2's count : 300
3's count : 300
4's count : 300
5's count : 300
6's count : 300
7's count : 300
8's count : 300
9's count : 300
숫자가 너무 반듯하게 나와서 순간 제대로 한게 맞나 의심이 들었는데
10까지만 탐색돌리니
➜ project ./a.out
0's count : 2
1's count : 2
2's count : 1
3's count : 1
4's count : 1
5's count : 1
6's count : 1
7's count : 1
8's count : 1
9's count : 1
라고 나오는거 보니 맞는거 같음 ㅇㅇ
반듯하네 ㅇㅅㅇ
정말정말 고마운데 배열 안쓰고 반복문으로만은 혹시 못해? 내가 배열을 잘 몰라서 ㅠㅠ
배열 안 쓰면 0부터 9까지 각각에 해당하는 변수 int one int two int three 일일히 선언한다음 일일히 비교대조해서 넣어줘야겠지?
애초에 배열을 안 쓰면 풀기 어려운 문제다 ㅇㅅㅇ 기초 문법부터 공부하잣
그럼 변수 하나씩 선언하고 for(i=0; i<=999; i++){switch(999) case '0' : count0++; break; 돌리면 되려나? for문 여러번 쓰면 복잡하니까 switch문 쓰면 좋을거같은데
switch case 그렇게 남발하는 습관 벌써부터 들이면 좋지 않습니다 ㅇㅅㅇ
으으 어려워...i값이 1씩 증가하는데 거기에 숫자 몇이 포함되는지 어떻게 세?
for문 안에서 숫자들이 어떻게 처리되는지 한 줄 한 줄 천천히 읽어보면서 따라가봐
1) 123을 1과 23으로 쪼개고 1 카운터를 1개 올림 2) 23을 2와 3으로 쪼개고 2 카운터를 1개 올림 3) 3만 남았으니 3 카운터를 1개 올림
쪼갠다는건 /100 /10 /1 한다는거야?
/1은 할필요없으니 생략하고 그렇지 ㅇㅅㅇ
https://codingdojang.com/scode/504?orderby=&langby=#answer-filter-area
검색하니 똑같은 문제에 대해 수많은 풀이가 이미 널려있구나 여기서도 찾아보렴
저기 가서 찾아봣는데 다 파이썬아니면 배열을 사용햇더라구 ㅠ
뭐하는건데 ?
프린이 질문 답변 ㅇㅅㅇ
내가 풀면 0이 190개가 나오는데
코드 올려줘 ㅇㅅㅇ 나도 내 코드에 확신은 없다
const cnt = []; for (let i = 0; i < 10; ++i) { cnt[i] = 0; } for (let i = 0; i < 1000; ++i) { (i + '').split('').forEach(d => { ++cnt[d]; }); } throw cnt;
파이썬이냐? 문법 몰라서 모르겠네....
근데 일단 0이 190개는 아닐듯 ㅇㅅㅇ 범위 10이랑 20으로 조정하고 결과 돌려봐