📌문제 설명
https://www.acmicpc.net/problem/1270
💡생각
- 절반을 초과하는 숫자가 있다면 = 숫자출력
- 절반을 초과하는 숫자가 없다면 = SYJKGW출력
처음에 map을 생각하는데 시간이 걸린거 같다.
그리고 long long 으로 입력받아서 문자열로 변환해서 map에 저장하는 과정에 시간이 오래 걸려서 시간 초과가 발생했었다.
🔥풀이
#include <iostream>
#include <map>
using namespace std;
/*
* 절반을 초과하는 숫자가 없다면 = SYJKGW
* 절반을 초과하는 숫자가 있다면 = result출력
*/
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int N = 0;
int T = 0;
long long temp = 0;
cin >> N;
for(int i = 0; i < N; i++){
cin >> T;
bool flag = false;
int half = T/2 + 1;
long long result = 0;
map<long long, int> m;
for(int j = 0; j < T; j++){
cin >> temp;
m[temp]++;
}
for(auto it = m.begin(); it != m.end(); it++){
if(it->second >= half){
flag = true;
result = it->first;
break;
}
}
if(!flag){
cout << "SYJKGW" << "\n";
}else{
cout << result << "\n";
}
}
}
📕참고
'알고리즘 > 문제풀이 :백준' 카테고리의 다른 글
[백준][C++] 5430 - AC (1) | 2025.05.15 |
---|---|
[백준][C++] 10972 - 다음 순열 (next_permutation) (0) | 2025.05.04 |
[백준][C++] 1213-팰린드롬 만들기 (0) | 2025.04.30 |
[백준][C++] 토너먼트 (0) | 2025.04.29 |
[백준][c++] 1024-수열의 합 (0) | 2025.04.13 |