hik3562   5년 전

접근 방법.

  1. 배열로 입력된것을 copy 배열을 형성, 기존의 배열을 sort
  2. 이차원 배열을 형성 [배열로 입력된것][copy 배열로형성] 에 1을 대입
  3. 사이클은 현재 정점으로 다시 돌아오는것이므로 2중 포문을 형성 check == false(방문하지 않은 지점) 과 2. 에서 구현한 배열의 값이 1인지 if 문으로 점검하되, 이 조건에 맞는 최초의 위치를 mstart로 저장해둔다. 그리고 dfs을 돌린다. 
  4. dfs에서는 두가지 체크, 최초의 위치와 같은 지점에서 만나는지 아니면 다시 dfs 함수를 돌림.

구현력이 미흡해서, 검색 엔진을 활용 했으나 테스트케이스도 잘 넘어가지 않아 

미흡한 점에 대한 피드백을 여쭤보고 싶습니다.!!

luniro   5년 전

각 접근 방법에 대해서
  1. 1부터 N까지의 순열이기 때문에 굳이 sorting하지 않아도 됩니다
  2. 1차원 배열로도 표현 가능합니다 예시의 1번 테게같은 경우 arr[1] = 3, arr[2] = 2, arr[3] = 7, ... 어차피 순열이기 때문에 1대1 대응됩니다
  3. 각 정점마다 다른 노드로 향하는 간선이 1개씩밖에 없으므로, dfs를 돌리다가 방문한 지점에 도착하면 종료하는 식이 좋을 것 같네요 지금 방식은 잘 이해하지 못했습니다
  4. 굳이 할 필요가 없는게 항상 dfs를 돌리면 최초의 위치에서 만나게 됩니다

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