입력된 수들 중에서 제일 많은 수를 출력하라. 첫줄에 N이 입력되고 다음 줄에 1~50사이의 N개의 자연수가 입력된다. 제일 많은 수가 1가지면 그수를 출력하고 2가지 이상이면 -1을 출력하라.
#include <iostream>
#include <windows.h>
#include <algorithm>
using namespace std;
int main(){
int N,i,a[50]={0},j,m=0;
bool isonly = true;
cin >> N;
for(i = 0 ; i < N ; i++){
cin>>j;
a[j]++;
}
for(i=1; i<50; i++){
if(a[0]<a[i]){
swap(a[i],a[0]);
m=i;//더 많은 자연수로 m 값을 갱신.
}
}
for(i=1; i<50;i++)if(a[0]==a[i])isonly=false;
if(isonly)cout<<m;
else cout<<-1;
system("PAUSE");
return 0;
}
실행
15
34 34 28 2 1 29 3 17 22 19 45 5 11 25 3
-1Press any key to continue . . .
10
3 2 8 7 6 8 6 0 8 9
8Press any key to continue . . .
#include <iostream>
#include <windows.h>
#include <algorithm>
using namespace std;
int main(){
int N,i,a[50]={0},j,m=0;
bool isonly = true;
cin >> N;
for(i = 0 ; i < N ; i++){
cin>>j;
a[j]++;
}
for(i=1; i<50; i++){
if(a[0]<a[i]){
swap(a[i],a[0]);
m=i;//더 많은 자연수로 m 값을 갱신.
}
}
for(i=1; i<50;i++)if(a[0]==a[i])isonly=false;
if(isonly)cout<<m;
else cout<<-1;
system("PAUSE");
return 0;
}
실행
15
34 34 28 2 1 29 3 17 22 19 45 5 11 25 3
-1Press any key to continue . . .
10
3 2 8 7 6 8 6 0 8 9
8Press any key to continue . . .
댓글
댓글 쓰기