알고리즘/BOJ

백준 14659번 한조서열정리하고옴ㅋㅋ

꾸준함. 2018. 8. 9. 12:44

문제 링크입니다: https://www.acmicpc.net/problem/14659


브루트 포스(Brute Force) 알고리즘 문제였습니다.


알고리즘은 아래와 같습니다.

1. [0~N)까지 반복문을 돌리면서 arr[i]를 기준 봉우리로 만듭니다.

2. [i+1 ~ N)까지 반복문을 돌리면서 1번에서 기준으로 삼은 봉우리보다 작은 봉우리들의 개수를 기준 봉우리보다 큰 봉우리가 나올 때까지 셉니다.

3. 2번에서 구한 값 중 최대를 출력합니다.


#include <iostream>

#include <algorithm>

using namespace std;

 

const int MAX = 30000;

 

int N;

int arr[MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0); //cin 실행속도 향상

        cin >> N;

 

        for (int i = 0; i < N; i++)

                 cin >> arr[i];

       

        int result = 0;

        for (int i = 0; i < N; i++)

        {

                 int criteria = arr[i]; //기준 봉우리

                 int cnt = 0;

                 for (int j = i + 1; j < N; j++)

                         //기준 봉우리보다 높으면 공격을 못한다

                         if (arr[j] > criteria)

                                 break;

                         else

                                 cnt++;

 

                 result = max(result, cnt);

        }

        cout << result << "\n";

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형