2887번 - 행성 터널
제가 짠 코드는 시간초과가 뜨는데....
아래 다른분의 질/답을 보면 입력받는 부분에서 행성간의 거리를 전부 다 초기화시키면 10만*10만으로 시간초과 에러가
나므로 최소 거리만 넣으라고 했는데요. 최소 거리를 판별하려고 해도 10만*10만번의 비교가 필요하지 않나요??
10만개가 들어왔다고 할 경우.
1번. 2~10만개까지 돌아가면서 x,y,z에 대해 거리계산해서 최솟값 구해서 연결해줌.
2번. 3~10만개까지 ~~
3번. 4~10만개까지~~
이런식으로 할수밖에 없을거같은데... '짧은 거리' 라는걸 어떻게 빠른 시간 안에 판별할 수 있을까요?
그리고 여기서의 '짧은 거리'란게 제가말한 가장 짧은 거리가 맞는지 궁금합니다.
간단한 예시를 들어, 1차원 상에 1번,2번,3번,...n번 행성이 차례대로 있다고 가정해봅시다.
그러면 1번과 n번 행성 사이의 거리를 계산할 필요가 있을까요?
질문을 올리고 말씀해주신것과 비슷한? 방법으로 풀긴 풀었습니다 감사합니다.
x,y,z좌표를 정렬후그냥 서로 i-1번째와 i번째는 다 이어주는식으로 했더니 시간초과 안떴습니다 감사합니다
1번과 n번 행성 사이의 거리를 왜 계산할 필요가 없나요..??
댓글을 작성하려면 로그인해야 합니다.
qkqhxla1 7년 전
제가 짠 코드는 시간초과가 뜨는데....
아래 다른분의 질/답을 보면 입력받는 부분에서 행성간의 거리를 전부 다 초기화시키면 10만*10만으로 시간초과 에러가
나므로 최소 거리만 넣으라고 했는데요. 최소 거리를 판별하려고 해도 10만*10만번의 비교가 필요하지 않나요??
10만개가 들어왔다고 할 경우.
1번. 2~10만개까지 돌아가면서 x,y,z에 대해 거리계산해서 최솟값 구해서 연결해줌.
2번. 3~10만개까지 ~~
3번. 4~10만개까지~~
이런식으로 할수밖에 없을거같은데... '짧은 거리' 라는걸 어떻게 빠른 시간 안에 판별할 수 있을까요?
그리고 여기서의 '짧은 거리'란게 제가말한 가장 짧은 거리가 맞는지 궁금합니다.