티스토리 뷰

반응형

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

 

2828번: 사과 담기 게임

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

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 그리디 알고리즘

 


 

⊙ 문제 접근 과정

 

만약 범위 안에 값이 존재하면 다음 사과 위치로 넘어간다. 범위 안에 값이 존재하지 않는다면, count up 해주고 해당 방향으로 한 칸 이동하고 다시 검사한다.


 

⊙ 문제 풀이

 

#include <iostream>

using namespace std;

int N, M, J;

int main() {
    cin >> N >> M >> J;

    int cnt=0;

    int start=1, end = M;

    while(J--) {
        int x;
        cin >> x;

        bool flag=true;
        while(flag) {
            if(start<=x && x<=end) {
                flag=false;
            } else if(start>x){
                start--; end--; cnt++;
            } else {
                start++; end++; cnt++;
            }
        }
    }

    cout << cnt;
}

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함