0. 문제
1. 문제 이해

예제 입력 1

예제 입력 2
N,M,J를 입력을 저장한다.바구니의 왼쪽을 중심으로 생각한다.- 바구니의 중심을 기준으로 이동 방향이 왼쪽이면 이동 거리는
abs(사과 - 바구니 중심)이다.abs()는cstdlib에서 제공하는 절댓값을 구하는 함수다. - 바구니의 중심을 기준으로 이동 방향이 오른쪽이면…
(사과 - 바구니 중심)가M보다 작다면 움직이지 않음.- 크거나 같으면
사과 - 바구니 중심 - M + 1이다.
2. 문제 제출
// 백준 2828번: 사과 담기 게임
#include <iostream>
#include <cstdlib>
using namespace std;
int n, m, j, pos=0, ret;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m >> j;
for(int i=0; i<j; i++){
int apple;
cin >> apple;
apple--;
bool goLeft = apple < pos;
if(goLeft){
ret += abs(apple - pos);
pos = apple;
}else{
bool notMove = (apple - pos) < m;
if(notMove) continue;
int distance = apple - pos - m +1;
ret += distance;
pos += distance;
}
}
cout << ret << "\n";
return 0;
}
Code language: PHP (php)
