코딩 테스트 – 2828 사과 담기

고개를 돌려야 하는 게 문제였다.

하지만 코드가 짧다

우선 r이 맞다.

이것이 올바른 기준이다.

그런 다음 l은 분명히 왼쪽 기준을 나타냅니다.

그래서 l을 기본값으로 하고 l+m-1을 실행하면 오른쪽이 나옵니다.

다른 문제에도 비슷한 종류가 많을 것 같으니 외워두자.

using namespace std;


int n, m, j, r, l, temp,ret;


int main() 
{
	cin >> n >> m >> j;

	l = 1;

	for (int i = 0; i < j; i++)
	{
		cin >> temp;

		r = l + m - 1;

		if (temp >= l && temp <= r) continue;
		else
		{
			if (l > temp)
			{
				ret += (l -temp);
				l = temp;
			}
			else
			{
				l += (temp - r);
				ret += (temp - r);
			}
		}

	}
	cout << ret << endl;
}