728x90
출처 : http://www.jungol.co.kr/problem.php?id=1141
#include <iostream>
using namespace std;
int main(void)
{
int cows[80000];
int n, i, x = 0, Cow_Front;
long long cnt = 0;
cin >> n; // 몇마리?
for (i = 0; i < n; i++)
{
cin >> Cow_Front; // 앞에 서게 될 소의 사이즈를 입력받는다.
while (cows[x - 1] <= Cow_Front && x > 0) x--;
// 소가 두 마리 이상이며, 앞에 서게 된 소의 사이즈가 뒤에 있는 소의 사이즈보다 크거나 같은 경우
// 시야에 방해받지 않는 사이즈의 소가 나올 때까지 시야가 가려지는 사이즈의 소들을 제외한다.
// (x는 입력받은 앞에 서게 될 소의 주소값이며 유효한 소 중 가장 앞에 서있는 소의 주소값.)
cnt += x;
// 시야에 방해받지 않는 소의 수만큼 더한다.
cows[x++] = Cow_Front;
// 입력 받은 소의 사이즈를 입력하고 다음 입력받을 소의 주소값을 임시로 배정해둔다.
}
cout << cnt;
}
728x90
'Computer Science > Data Structure, Algorithm' 카테고리의 다른 글
Jungol] 1178 : 정수의 곱과 자릿수 (0) | 2015.07.20 |
---|---|
Algorithm] Insertion Sort(삽입정렬) (0) | 2015.07.11 |
Algorithm] Quick Sort(퀵정렬) (0) | 2015.07.11 |
Algorithm] Selection Sort(선택정렬) (0) | 2015.05.26 |
Algorithm] Bubble Sort(버블정렬, 거품정렬) (0) | 2015.05.26 |