카테고리 없음

11652_카드

송디 2020. 11. 14. 22:01

www.acmicpc.net/problem/11652

 

11652번: 카드

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

www.acmicpc.net

범위가 -2^62 ~ 2^62 라서 long long을 사용해줬다. 

n^2으로 하면 터지기 때문에 n으로 해결하기 위해 sort를 먼저해줬다. 

제대로 한 것 같은데 이상하게 틀리다고 나왔다. 

다른 사람 코드를 참조하여 보니 지역변수가 전역변수로 되니 코드가 잘 돌아갔다.

이유가 무엇일까?

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
#include<vector>
#include<algorithm>
 
using namespace std;
vector<long long> cards;
 
int main(void){
    cin.tie(NULL);
    ios::sync_with_stdio(false);
    int n, cnt, max, idx;
 
    cin >> n;
    for(int i = 0; i < n;i++){
        long long num;
        cin >> num;
        cards.push_back(num);
    }
    sort(cards.begin(), cards.end());
    cnt = 1;max = 0; idx = 0;
    for(int i = 0; i < n - 1;i++){
        if(cards[i] == cards[i + 1]){
            cnt++;
            if(max < cnt){
                max = cnt;
                idx = i;
            }
        }else
            cnt = 1;
    }
    cout << cards[idx] << "\n";
}
 
cs
728x90