doom233   2년 전

DFS로 모든 맵을 돌면서 섬 마다 라벨링을 해준 뒤,


각 섬의 가장자리 좌표를 벡터에 삽입한 뒤,


서로 다른 섬 끼리 거리를 측정했을 때, 가장 짧은 길이를 반환하도록 코딩하였습니다.


그러나 12%까지만 되고 바로 틀렸다고 뜨는데 아무리봐도 잘 모르겠어서 도움 요청드립니다..


ljh9032a   2년 전

가장자리라고 섬 사이의 가장 짧은 길이가 나오는게 아니네요

한 예로는 섬과 섬사이에 다른섬이 있다면 우회해서 가야겠죠..

doom233   2년 전

답변 감사합니다. 궁금한게 있는데, 섬과 섬 사이에 다른 섬이 있으면, 그 섬과 이으면 다리 길이가 최소가 되는거 아닌가요?? ㅠㅠ 제가 문제를 잘못 이해한건가요...

ljh9032a   2년 전

60 : if(Land.get(i)==Land.get(j)) continue;

 이 부분이 이해가 안가네요... 라벨링을 해줄거면

28 : Land.add(land_num); // 라벨링을 해준다.           부분에서  이 벡터에 1, 1, 1, 2, 2, 2, 3, 3, ..이런 식으로 들어가는데

60줄과 의미가 이상한듯 하네요.. 아마  라벨링 2차원  배열을 생성 해서 표시 해야될 것 같아요




doom233   2년 전

ljh9032a / 아 그 부분 설명이 부족했군요 죄송합니다...


설명 드리면, DFS로 섬을 돌면서 가장자리를 뽑아내는데, 가장자리마다 라벨링을 해주는 방식입니다.


쉽게 말해서, 1번섬의 가장자리는 1번으로 라벨링, 2번 섬의 가장자리는 2번으로 라벨링 하는 방식입니다.


60줄의 의미는 같은 섬의 가장자리 간의 거리는 구하지 않는다는 의미입니다!


읽어주셔서 감사해요!! 

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