Machineboy空

2828 : 사과 담기 게임 본문

Computer/Coding Test

2828 : 사과 담기 게임

안녕도라 2024. 2. 13. 17:15

https://www.acmicpc.net/problem/2828

 

2828번: 사과 담기 게임

상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M<N) 플레이어는 게임을 하는 중에 바구니를

www.acmicpc.net

문제요약

랜덤하게 떨어지는 사과를 받기 위한 바구니의 최소 이동 거리

 

난이도

Silver 5


풀이 포인트

  • 개수 , 길이, 이동 카운트 꼼꼼히 체크

REVIEW

 

바구니의 끝과 시작을 떨어지는 사과  위치와 비교해서 좌우 이동한다는 아이디어.

바구니의 끝점 인덱스는 시작점 + 바구니 길이 -1 이란 것도 체크.

근데 왜 내 코드가 틀린 건지 분석중.

 


CODE

#include <bits/stdc++.h>
using namespace std;
int n, m, j, l, r, temp, ret;
int main()
{
    cin >> n >> m >> j;
    l = 1;
    for (int i = 0; i < j; i++)
    {
        r = l + m - 1;
        cin >> temp;
        if (temp >= l && temp <= r)
            continue;
        else
        {
            if (temp < l)
            {
                ret += (l - temp);
                l = temp;
            }
            else
            {
                l += (temp - r);
                ret += (temp - r);
            }
        }
    }
    cout << ret << "\n";
    return 0;
}