문제: 11652번: 카드
basic-algo-lecture/workbook/0x0F.md at master · encrypted-def/basic-algo-lecture
basic-algo-lecture/workbook/0x0F.md at master · encrypted-def/basic-algo-lecture
바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.
github.com
#include <queue>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
vector<long long> nums(n);
for (int i = 0; i < n; i++)
cin >> nums[i];
sort(nums.begin(), nums.end()); // 오름차순 정렬
long long answer = nums[0];
int curMaxCnt = 1;
int tmpCnt = 1;
long long prev = nums[0];
if (n == 1) {
cout << nums[0];
}
else {
for (int i = 1; i < n; i++) {
if (prev == nums[i]) {
tmpCnt++; // 같은 숫자면 개수 증가
}
else {
if (tmpCnt > curMaxCnt) {
curMaxCnt = tmpCnt;
answer = prev;
}
prev = nums[i]; // prev 갱신
tmpCnt = 1; // 초기화~
}
}
// 마지막 처리
if (tmpCnt > curMaxCnt) {
answer = prev;
}
cout << answer;
}
return 0;
}
.. 쉬운 문제라고 생각해서 대충 풀었더니 오류 투성이었다. 일단 수의 범위가
int 형으로 담을 수 없으므로 long long 을 써줘야 했는데 그걸 놓쳤다.
다음으로 놓친 부분은 이전 값과 현재 값이 다르면 prev 값을 갱신하고 tmpCnt 값을 초기화해야 하는 것..
아. 놀고 왔더니 공부에 집중이 안 된다. 정신 차려라
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/045.gif)