sinsisao   4년 전

매 턴마다

Vertex 배열에 다음 턴할 위치 (꼭짓점)을 입력하였습니다.

해서 i-1번째 Vertex점과 i번째 Vertex점을 잇는 선이 이번에 그을 선이 됩니다.

그리고 이번 입력 전까지 입력 받아온 꼭짓점을 확인하여 이번에 그을 선과 겹치는 선이 있는지 확인했습니다.

이번 그을 선 :: i-1, i 점

겹지는지 확인할 이미 그어진 선 :: k, k + 1 점

이번에 긋는 선이 가로일 경우 지금까지 그어진 선중 세로선만 확인하였습니다.

세로일 경우 가로선만 확인하였습니다.


가로 긋기의 경우

이전 까지 긋은 모든 가로선은 확인할 세로선의 끝점과 연결되어 있기 때문에 세로 선만 확인해도 같이 확인이 되었습니다.

0점은 세로선과 연결되지 않은 유일한 점으로 예외처리를 하였습니다.


더할 선의 길이는 뱀이 죽었을 경우 flag에 저장하였고

죽지 않았을 경우엔 Ti배열에 있는 값을 그대로 더했습니다.

모든 턴이 끝났음에도 flag가 INF인 경우 아직 뱀이 죽이 않았음으로 가리키고 있는 방향의 벽과의 거리를 더했습니다.

계속해서 30%대를 넘기지 못하고 "틀렸습니다."의 결과를 받습니다.

이유를 모르겠습니다.

포함되지 않은 예외를 알고계신분이 계시다면 한말씀 부탁드리겠습니다.

kdk8361   4년 전

4
4
1 L
1 L
2 L
1 L

6나와야 합니다.

dhedaa   4년 전

@kdk8361

주신 테스트케이스는 뱀이 자기 몸에 안닿는거 아닌가요?

마지막에 한번 더 움직이는걸 추가해야 6이 출력되는거 아닌가요?


kdk8361   4년 전

뱀은 숨을 거두기 직전까지 몸을 계속 늘려나간다.

입력은 몇 초 후에 어느쪽으로 방향을 꺾을지를 알려주는것이지 몇초동안 어느방향으로 이동하는게 아니에요.

dhedaa   4년 전

@kdk8361 

그렇군요 문제이해를 잘못했네요

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