반응형
문제 출처 :
https://www.acmicpc.net/problem/1668
알고리즘 분석 :
문제 해결에 필요한 사항
1. 탐색 방식 고안
이 문제는 간단히 생각할 수록 빠르게 해결 할 수 있는 문제이다.
max라는 변수하나만을 이용하여 트로피크기와 비교하여 max를 갱신해주는 과정에서
모든 문제가 해결 될 수 있음을 확인할 수 있다.
자세한 내용은 주석을 통해 기록해 두었다.
이 문제를 해결하게 된다면
고층 빌딩 : https://www.acmicpc.net/problem/1328
이 문제에 한번 도전해 보는 것 또한 추천한다.
소스 코드 :
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 | #include <iostream> #include <cstdio> using namespace std; int main() { int n; int trophy[51]; int max = 0; int cnt = 0; scanf("%d", &n); // 트로피를 배열에 입력받는다. for (int i = 0; i < n; i++) scanf("%d", &trophy[i]); // 왼쪽에서부터 보고 있는 트로피가 max보다 크다면 // max를 갱신해주고 cnt를 하나 늘린다. for (int i = 0; i < n; i++) { if (trophy[i] > max) { max = trophy[i]; cnt++; } } cout << cnt << endl; max = 0; cnt = 0; // 오른쪽에서부터 보고 있는 트로피가 max보다 크다면 // max를 갱신해주고 cnt를 하나 늘린다. for (int i = n - 1; i >= 0; i--) { if (trophy[i] > max) { max = trophy[i]; cnt++; } } cout << cnt; return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[1427번] 소트인사이드 (0) | 2017.01.09 |
---|---|
[2609번] 최대공약수와 최소공배수 (0) | 2017.01.08 |
[1991번] 트리 순회 (0) | 2017.01.08 |
[10866번] 덱 (0) | 2016.12.29 |
[2217번] 로프 (0) | 2016.12.22 |