문제출처: https://www.acmicpc.net/problem/1668
풀이
간단한 탐색 문제입니다. 왼쪽에서볼때, 오른쪽에서 볼때의 각각 보이는 높이를 구하면됩니다. 각 경우별로 트로피높이를 비교할 때 제일 높은 트로피로 갱신해주며 계산하면됩니다.
코드
#include<iostream> #include<algorithm> using namespace std; int trophy[50]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> trophy[i]; int left = 0; int right = 0; int left_max = -1; int right_max = -1; for (int i = 0; i < n; i++) { if (left_max < trophy[i]) { left_max = trophy[i]; left++; } if (right_max < trophy[n - 1 - i]) { right_max = trophy[n - i - 1]; right++; } } cout << left << endl << right << endl; }
결과
'문제풀이(BOJ) > 탐색' 카테고리의 다른 글
[백준 1940] 주몽 (0) | 2019.12.01 |
---|