문제 링크입니다: 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 |