Koala - 9기/기초 알고리즘 스터디

[python/파이썬] 백준 baekjoon 2828 사과 담기 게임

코딩하는쉐프 2023. 1. 23. 22:12

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

 

2828번: 사과 담기 게임

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

www.acmicpc.net

풀이 및 해설

사과를 받기 위해서는 사과가 떨어지는 위치에 바구니가 존재해야한다.

이는 바구니의 왼쪽 <= 사과 <= 바구니의 오른쪽 이어야한다.

따라서 이동해야하는 거리는 바구니의 왼쪽과 오른쪽을 기준으로 생각하면된다. 

1. 사과가 현재 바구니 위치보다 왼쪽에 있는 경우

>> 왼쪽 기준으로 N칸

2. 사과가 현재 바구니 위치에 떨어지는 경우

3. 사과가 현재 바구니 위치보다 오른쪽에 있는 경우

>> 오른쪽 기준으로 N칸

이 세가지 경우를 생각하면 이동해야할 최소 거리를 구할 수 있다.