[C++] BOJ 2828번: 사과 담기 게임

ㅎㅎ·2023년 8월 4일
0

BOJ

목록 보기
27/65

BOJ 2828번: 사과 담기 게임

문제


문제 풀이

그리드 알고리즘 사용

사과가 떨어질 때마다,
시작보다 앞에 있으면 그만큼 이동
끝보다 뒤에 있으면 그만큼 이동

#include <iostream>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    int n, m, j, ans = 0, i, apple; // 스크린, 바구니, 사과 개수, 이동거리
    cin >> n >> m;
    
    cin >> j;
    int start = 1, end = m;

    for (i = 0; i < j; i++) {
        cin >> apple;
        if (start > apple) { // 왼쪽으로 이동
            ans += start - apple;
            start = apple;
            end = start + (m - 1);
        }
        else if (end < apple) { // 오른쪽으로 이동
            ans += apple - end;
            end = apple;
            start = end - (m - 1);
        }
    }

    cout << ans;

    return 0;
}
profile
Backend

0개의 댓글