아니 오늘 문제 진짜 엄청 쉬웠는데,,진짜 코딩을 얼마나 안했으면 100의 자리 자연수를 받는데, int형 변수를 선언해서 받고있었지,, 어쩐지 코드 다 짜놓고 자꾸 오답이 나서 도대체 뭐가 잘못됐는지 한참 찾았다..
일단 오늘의 문제는 자연수를 받아서 가장 빈도 높은 자연수를 뽑아내는건데, 만약 빈도가 같을 경우 더 큰 자연수를 뽑는 것이다.. 사실상 int형 배열(0~9) 하나 만들어주고, 아스키코드 값으로 char형 문자열 받아서, 배열에다가 넣어준다음에, 최댓값 뽑아내면 그만인데.. 위에서 말한것처럼 너무 헛짓거리를 많이 해버렸다..
우선 코드는
#include<iostream>
using namespace std;
int main(){
char N[101];
int res, count[10]={0,}, max=0;
cin>>N;
for(int i=0; N[i]!='\0'; i++){
count[N[i]-'0']++;
}
for(int i =0; i<10; i++){
//cout<<count[i];
if(count[i]>=max){
max = count[i];
res = i;
}
}
cout<<res;
}
scanf 로 받는게 런타임에 도움이 되겠지만,, cin과 cout이 너무 편하다.. 나중에 차근차근 바꿔보도록 하겠다..