알고리즘/BOJ

백준 2828번 사과 담기 게임

꾸준함. 2019. 1. 26. 03:52

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


쉬운 그리디 문제였습니다.

바구니의 범위 내에 사과가 있는지 확인하고 없으면 왼쪽으로 움직일지 오른쪽으로 움직일지 판별하면 되는 문제였습니다.


#include <iostream>

using namespace std;

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int N, M;

        cin >> N >> M;

 

        int J;

        cin >> J;

 

        int idx = 1;

        int result = 0;

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

        {

                 int num;

                 cin >> num;

 

                 while (1)

                 {

                         bool flag = false;

                         //범위 내에 사과가 있는지 확인

                         for(int j=idx; j<=idx+(M-1); j++)

                                 if (j == num)

                                 {

                                          flag = true;

                                          break;

                                 }

 

                         if (flag)

                                 break;

                         //바구니 왼쪽 끝이 사과 위치보다 오른쪽이라면

                         if (idx > num)

                                 idx--;

                         //바구니 오른쪽 끝이 사과 위치보다 왼쪽이라면

                         else

                                 idx++;

                         result++;

                 }

        }

        cout << result << "\n";

        return 0;

}


개발환경:Visual Studio 2017


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

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 9576번 책 나눠주기  (0) 2019.01.27
백준 2831번 댄스 파티  (0) 2019.01.26
백준 11333번 4*n 타일링  (4) 2019.01.25
백준 11058번 크리보드  (2) 2019.01.25
백준 2568번 전깃줄-2  (0) 2019.01.24