백준/Python

[백준] 26071 오락실에 간 총총이 (python 파이썬)

노랑꼬리 2022. 11. 28. 18:12

문제링크 : https://www.acmicpc.net/problem/26071

 

26071번: 오락실에 간 총총이

모든 곰곰이를 하나의 칸에 모으기 위해, 총총이가 최소 몇 번 버튼을 눌러야 하는지 구하시오.

www.acmicpc.net

 

작성코드

 

 

 

풀이

 

1) G(곰곰이)가 한 곳에 모이기 위해서는 한 변에 도달해야 겹쳐지기 시작한다. 이렇게 모을 경우 모든 G를 모으기 위해 4가지 경우의 수가 존재한다.

 

- G가 하나                       : 움직일 필요 없음

- G가 가로 한줄               : 가로 변에서 합침

- G가 세로 한줄               : 세로 변에서 합침

- G가 가로 세로 흩어짐   : 모서리로 이동

 

2) 이를 코드로 바꿔 해결하려면 우선 G의 위치를 찾아야한다. 입력 받을 때 바로 처리를 해주는 방식으로 작성했다.

 

3) G가 존재하는 위치의 가로세로 최소 최댓값을 저장해준다.

※ G가 없는 줄은 넘어가서 오류를 방지한다.

countW1 초깃값은 N이다

 

4) 위 1)에서 4가지 경우의 수에 따라 button 누르는 횟수를 계산해준다.

 

min() 계산 부분은 변까지 거리의 최소 값이다.