반응형
문제 출처 :
https://www.acmicpc.net/problem/14911
알고리즘 분석 :
문제 해결에 필요한 사항
1. 구현
2. map
이 문제는 n의 크기가 작기에 모든걸 다받고 부르트 포스로 해결 할 수 있다.
이때 중복되는것을 따로 처리하지 않고 map에 다 담아둔 후, 1이상이면 출력하도록 하여 문제를 해결 할 수 있다.
소스 코드 :
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 | #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <map> using namespace std; int main() { int n; vector<int> vc; while (scanf("%d", &n) != EOF) vc.push_back(n); int target = vc[vc.size() - 1]; vc.pop_back(); map<pair<int, int >, int> ans; for (int i = 0; i < vc.size(); i++) for (int j = i + 1; j < vc.size(); j++) if (vc[i] + vc[j] == target) { if (vc[i] > vc[j]) ans[{ vc[j], vc[i] }]++; else ans[{ vc[i],vc[j] }]++; } for (auto it = ans.begin(); it != ans.end(); it++) printf("%d %d\n", it->first.first, it->first.second); printf("%d\n", ans.size()); return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[1933번] 스카이라인 (2) | 2018.05.11 |
---|---|
[14915번] 진수 변환기 (0) | 2018.05.08 |
[10174번] 팰린드롬 (2) | 2018.05.04 |
[13275번] 가장 긴 팰린드롬 부분 문자열 (2) | 2018.05.03 |
[11008번] 복붙의 달인 (0) | 2018.05.01 |