13번 문제
내가 풀이한 답
문제를 보자마자 배열의 0~9 index를 이용해 값을 저장하고 최대값을 찾으려고 하였다. 주어진 입력 조건에 자연수의 길이는 100을 넘지 않는다고 되어 있는데 최대가 99이므로 long long 타입으로도 받을 수 없었다. char형 배열을 이용해서 각각을 정수로 바꿔주는 방법을 시도하였다.
#include <stdio.h>
using namespace std;
char array[101];
int digit[11];
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
int i, temp, max, index;
scanf("%s", &array);
for(i=0; array[i]!='\0'; i++){
temp = array[i] - '0';
digit[temp]++;
}
for(i=0; i<10; i++){
if(digit[i]>=max) {
max = digit[i];
index = i;
}
}
printf("%d", index);
return 0;
}
그 결과 통과를 했다.
사이트의 답안
#include<stdio.h>
int ch[10];
int main(){
//freopen("input.txt", "rt", stdin);
int i, digit, max=-2147000000, res;
char a[101];
scanf("%s", &a);
for(i=0; a[i]!='\0'; i++){
digit=a[i]-48;
ch[digit]++;
}
for(i=0; i<=9; i++){
if(ch[i]>=max){
max=ch[i];
res=i;
}
}
printf("%d\n", res);
return 0;
}
사이트의 답안과 내 코드는 논리적으로 똑같았다.
'알고리즘 & 자료구조 > 기초 다잡기' 카테고리의 다른 글
15. 소수의 개수 (0) | 2020.09.06 |
---|---|
14. 가장 많이 사용된 자릿수 (0) | 2020.09.06 |
12. 숫자의 총 개수(large) (0) | 2020.09.03 |
11. 숫자의 총 개수(small) (0) | 2020.09.03 |
10. 자릿수의 합 (0) | 2020.09.03 |