본문 바로가기

백준/C++

[C++] 백준 11652번 - 카드

728x90

 

문제 11652번

https://www.acmicpc.net/problem/11652

 

 

입력받은 값들을 정렬한 후 앞뒤를 비교하여 같으면 count해준다. 그렇게 count값이 max보다 크다면 max를 count값으로 업데이트해주고 출력해야하는 값을 count가 많은 입력값으로 업데이트해준다. 그렇게 반복문을 마치고 result값을 출력해주면 원하는 값을 구할 수 있다. 

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int N;
vector<long long> v;
long long a;

int main() {
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> a;
		v.push_back(a);
	}
	sort(v.begin(), v.end());

	int count = 0, max = 0;
	long long result = v[0];
	for (int i = 1; i < N; i++)	{
		if (v[i] == v[i - 1]) {
			count++;
			if (count > max) {
				max = count;
				result = v[i];
			}
		}
		else {
			count = 0;
		}
	}
	cout << result;

	return 0;
}

 

 

 

 

728x90

'백준 > C++' 카테고리의 다른 글

[C++] 백준 2231번 - 분해합  (0) 2024.05.13
[C++] 백준 5635번 - 생일  (0) 2024.05.12
[C++] 백준 9946번 - 단어 퍼즐  (0) 2024.05.11
[C++] 백준 10610번 - 30  (0) 2024.05.10
[C++] 백준 2075번 - N번째 큰 수  (0) 2024.05.08