wkqk66   3년 전

예제와 반례로 있는 문제를 확인했습니다.

문제를 제출하자마자 틀렸다고 합니다.

String cur[] = 상어별 "방향 x y"를 가진 배열

int smell[][] = new int[n][n]; // 냄새 저장
int visited[] = new int[n][n]; //냄새의 주인 상어 인덱스 저장

while을 돌면서 다음과 같은 일을 수행합니다.

1. 상어별로 살펴본다.

      1-1. 상어의 현재 방향별 우선순위를 확인

          1-1-1 만약 냄새가 비어있는 공간이 있다면 그곳을 cur 에 저장 //아직 smell과 visited를 변경하지 않음

          1-1-2 우선순위를 다 살펴봤는데 냄새가 비어있는 공간이 없다면 현재 상어 냄새를 저장한 것 중 우선순위가 낮은 곳의 위치를 cur에 저장


2. cur을 살펴보며 동일한 위치에 존재하는 상어 중 더 인덱스 값이 높은 상어  삭제 "-1" 저장 

3. 전체 냄새를 -1해주고 냄새가 0된 부분은 상어 위치도 초기값(=0)으로 바꿔줌 상어 인덱스는 1,2,... 

4. 상어 위치인 cur을 살펴보면 삭제된 "-1"은 pass하고 "방향 x y"를 가진 상어로 냄새 배열(= smell)과 위치배열( = visited) 값지정

첫번째 상어만 존재하면 break 아니면 다시 while문 돌기

이런 방식으로 생각했는데 어디가 문제일까요?ㅜㅜ 

댓글을 작성하려면 로그인해야 합니다.