알고리즘 문제/BOJ
11652번 카드
parkit
2018. 9. 26. 15:13
728x90
반응형
C언어로 구현하고 싶어서 처음에는 C언어로 구현하였었는데,
시간 초과가 떴다.
분명 로직상 오류가 없었던 것 같아서, C++로 구현하였더니, 바로 통과가 떴다.
아마 C언어로 구현한 퀵 정렬에서 시간을 많이 소비해서 그런 듯 하다.
right, left 위치 찾아가는 부분 때문인 듯 하다.
https://www.acmicpc.net/problem/11652
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include <iostream> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> using namespace std; vector<long long> v; int main(void) { int N = 0; long long input = 0; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%lld", &input); v.push_back(input); } sort(v.begin(), v.end()); int new_cnt = 1, before_cnt = 1; long long new_number = v[0], before_number = v[0]; for (int i = 0; i < N - 1; i++) { // 같으면 계속 while 문을 돈다. while (v[i] == v[i + 1]) { ++new_cnt; // 그 값이 몇 개나 있는가 new_number = v[i]; ++i; } if (before_cnt < new_cnt) { before_number = new_number; before_cnt = new_cnt; } new_cnt = 1; } printf("%lld\n", before_number); return 0; } | cs |
728x90
반응형