문제출처: 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

+ Recent posts