Code/swea

#1767. [SW Test 샘플문제] 프로세서 연결하기

milkteagood 2020. 3. 12. 18:34
728x90
반응형

출처:https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

dfs를 통해 구현.

가장자리에 붙어있는 프로세서는 무조건 전선길이가 0이므로 제외를 시켜준다. 그리고 나머지 프로세서들 중에서 전선배치를 완전탐색으로 구현하였다. 그냥 전선을 설치하지 않고 넘어가거나 각 방향별로 전선을 설치한 후 다음 dfs로 넘겨주는 방식으로 구현하였다. 전선을 설치하지 않을시 realcnt를 증가시키지 않고, turn횟수인 cnt값만 증가시켰으며

전선을 설치시 cnt와 realcnt를 모두 증가시켰다. 그리고 dfs입력 변수로 현재까지 설치한 전선 길이의 합을 계속해서 다음턴으로 넘겨준다. 그래서 cnt값이 총 프로세서개수와 같아지면 각 realcnt에 대한  전선길이 최솟값을 저장하는 배열에 그 값을 최솟값으로 갱신시켜서 보관한다. 그리고 시간초과를 줄이는 핵심이 있다. 여태까지 연결시킨 프로세서 수 + 앞으로 남은 프로세서 개수가 과거에 탐색을 완료했던 realcnt의 최댓값보다 작으면 탐색을 할필요가 없으므로 리턴시켜주면 시간을 10배 이상 줄일 수 있다.

 

코드

 

728x90
반응형