19237번 - 어른 상어
예제와 반례로 있는 문제를 확인했습니다.
문제를 제출하자마자 틀렸다고 합니다.
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문 돌기
이런 방식으로 생각했는데 어디가 문제일까요?ㅜㅜ
댓글을 작성하려면 로그인해야 합니다.
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문 돌기
이런 방식으로 생각했는데 어디가 문제일까요?ㅜㅜ