질문있습니다
17
요가인
작성한 질문수 35
0
#include <iostream>
using namespace std;
int N, M, J;
int l, r, cnt;
int main(){
cin >> N >> M >> J;
// 초기화
l = 1; r = M; cnt = 0;
for (int i = 0; i < J; i++){
int apple;
cin >> apple;
// 범위 안이라서 움직일 필요 없다.
if (apple >= l && apple <= r) continue;
// 왼쪽에 가까우면 왼쪽으로 이동 오른쪽에 가까우면 오른쪽으로 이동
int leftLength = abs(l - apple);
int rightLength = abs(r - apple);
bool isLeft = leftLength < rightLength ? true : false;
if (isLeft){
l -= leftLength;
r -= leftLength;
cnt += leftLength;
}
else{
l += rightLength;
r += rightLength;
cnt += rightLength;
}
}
cout << cnt;
return 0;
}제가 만든 로직대로라면 절대로 경계값을 벗어날 수가 없습니다.
왜냐하면 문제에서 "각 사과는 N칸중 한 칸의 상단에서 떨어지기 시작하며" 라고 주어져 있기 때문입니다.
67%에서 틀렸다고 나옵니다..!
답변 0
백준 서비스 종료
9
742
1
강의 추천해주세요
2
15
1
[업데이트] 파이썬 패키지 부분에서 안되어서 강의 진행 불가
2
58
3
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
51
3





