SW
[백준 11652] 카드 본문
0. 제목
- 백준 11652 카드
- BOJ 11652 카드
- C++ 11652 카드
1. 문제
https://www.acmicpc.net/problem/11652
2. 풀이
- 적혀있는 수의 범위가 크기 때문에 자료형을 long long으로 사용하는 것이 핵심이다.
- 처음에 배열을 입력받은 후, sort로 정렬을 한다.
- 그 후 가장 앞의 원소부터 다음 원소와 같은지를 비교한다. 같으면 연속적으로 나오는 개수를 증가시키고 다르면 1로 초기화시킨다.
- 매 루프마다 연속적으로 나오는 개수의 최댓값을 계산하고 그 때의 배열 원소값을 정답 변수에 갱신시켜준다.
- 반복문이 끝난 후 정답 변수를 출력해주면 끝난다.
3. 코드
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
34
35
36
37
38
|
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);cout.tie(NULL);
int N;
int max = 1;
long long ans;
long long arr[100001];
int cnt = 1;
cin >> N;
for(int i = 0; i < N; i++){
cin >> arr[i];
}
sort(arr, arr + N);
ans = arr[0];
for(int i = 1; i < N; i++){
if(arr[i] == arr[i-1])
cnt++;
else
cnt = 1;
if(max < cnt){
max = cnt;
ans = arr[i];
}
}
cout << ans << '\n';
return 0;
}
|
'대학교 > Algorithm' 카테고리의 다른 글
[백준 2798] 블랙잭 (0) | 2020.04.06 |
---|---|
[백준 11004] K번째 수 (0) | 2020.04.05 |
[백준 10989] 수 정렬하기 3 (0) | 2020.04.04 |
[백준 10825] 국영수 (0) | 2020.04.04 |
[백준 1182] 부분수열의 합 (0) | 2020.03.24 |
Comments