Algorithm101 모의 SW 역량테스트 (탈주범 검거) * 알고리즘 BFS 시뮬레이션 * 로직 각 구조물이 가지는 방향을 관리하는 배열을 생성한다 (structures[][]) 시계방향(북,동,남,서)에 대한 기본적인 방향 배열을 생성한다(directions[][]) 맨홀 뚜껑의 위치를 큐에 담고 BFS를 진행하면된다 현재 위치에서 이동 가능한 방향을 탐색한다 이동이 가능하다면 해당 방향으로 이동한다 이동할 곳이 연결 가능한지 판단한다 (이동할 곳의 구조물이 현재 방향에서 진행된 방향의 반대방향이 존재하는지) 연결 가능하다면 큐에 넣고 개수를 카운팅한다 bfs 로직이 끝나면 답을 출력한다 //탈주범 검거 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe.. 2020. 3. 12. 알고리즘(기지국 설치) [기지국 설치] * 알고리즘 그리디 알고리즘 * 로직 현재 위치를 1부터 시작하고, 설치된 기지국 위치를 기준으로 W 범위 내에 포함되어 있지 않다면 (stations[i] - w > 현재 위치) 현재 위치 += (2*w + 1)을 통해 범위가 포함되는 최적 위치로 이동시킨다 W 범위 내에 포함된다면 (stations[i] - w 2020. 3. 11. 동적 계획법1(RGB 거리, 정수 삼각형) [RGB 거리 _ 1149] * 로직 N개의 집마다 R,G,B를 칠할 때 드는 비용을 갖기 때문에 cost[N+1][3], dp[N+1][3]으로 설정한다 여기서 dp[N+1][3]은 해당 집까지 얻을 수 있는 비용의 최솟값을 저장한다 3가지 경우로 dp과정을 진행한다 dp[i][0]: i번째 집에서 R을 선택할 때 얻을 수 있는 최솟값 dp[i][1]: i번째 집에서 G을 선택할 때 얻을 수 있는 최솟값 dp[i][2]: i번째 집에서 B을 선택할 때 얻을 수 있는 최솟값 진행이 끝나면, dp[N][0], dp[N][1], dp[N][2] 중 최솟값을 출력한다 //RGB 거리 import java.io.BufferedReader; import java.io.IOException; import java... 2020. 3. 10. 이전 1 ··· 13 14 15 16 17 18 19 ··· 34 다음