군대에서_코딩하기_알고리즘_5

신태원·2021년 5월 11일
0

군대에서_코딩하기

목록 보기
6/30
post-thumbnail

아니 오늘 문제 진짜 엄청 쉬웠는데,,진짜 코딩을 얼마나 안했으면 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이 너무 편하다.. 나중에 차근차근 바꿔보도록 하겠다..

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글