본문 바로가기
Algorithm/C++

[백준 11652] 카드

by imagineer_jinny 2022. 9. 26.

11652번: 카드 (acmicpc.net)

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net

 

 

정답 풀이

// Authored by : BaaaaaaaaaaarkingDog
// Co-authored by : -
// http://boj.kr/f3feaf22016f4c9687b84ab6be2f4389
#include <bits/stdc++.h>
using namespace std;

int n;
long long a[100005];

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for(int i = 0; i < n; i++)
    cin >> a[i];
  sort(a, a+n);
  int cnt = 0;
  long long mxval = -(1ll << 62) - 1; // 1을 long long으로 형변환하지 않고 1 << 62로 작성시 int overflow 발생
  int mxcnt = 0;
  for(int i = 0; i < n; i++){
    if(i == 0 || a[i-1] == a[i]) cnt++; // i가 0인 경우 앞쪽 식이 true이기 때문에 a[i-1]을 참조하지 않음
    else{
      if(cnt > mxcnt){
        mxcnt = cnt;
        mxval = a[i-1];
      }
      cnt = 1;
    }
  }
  if(cnt > mxcnt) mxval = a[n-1]; // 제일 마지막 수가 몇 번 등장했는지를 별도로 확인
  cout << mxval;
}

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

[백준 5648] 역원소 정렬  (0) 2022.09.27
[백준 2146] 다리 만들기  (0) 2022.09.27
[백준 2573] 빙산  (0) 2022.09.26
[백준 1431] 시리얼 번호  (0) 2022.09.25
[백준 10825] 국영수  (0) 2022.09.25

댓글