Algorithm/Problem_SW31 SW 역량 테스트 기출 문제(이차원 배열과 연산) [이차원 배열과 연산 - 17140] * 로직 R, C가 배열 A의 사이즈 범위 내에 있다면 만약 A[R][C] = K라면 -> 바로 0초를 출력 그렇지 않다면 -> doSolution() 진행 R, C가 배열 A의 사이즈 범위를 벗어난다면 doSolution() 바로 진행 1초씩 늘려나가면서 N>=M이라면 R연산 진행 N 이전의 배열 사이즈를 유지한다 만약 크다면 -> 배열 사이즈를 갱신한다 (100보다 큰 경우엔 100으로 제한을 둔다) 따로 보관해둔 각 행들의 정보(map_tmp)에서 하나씩 꺼내어 A 배열에 새롭게 값을 넣어준다 넣어줄 때, 새로 갱신된 배열의 사이즈보다 작다면 -> 나머지 부분은 0을 넣는다 사이즈보다 크다면 -> 나머지 부분은 제거한다 C 연산 역시 같은 맥락이다 이후 A[R].. 2020. 4. 30. SW 역량 테스트 기출 문제(연구소 3) [연구소 3 - 17142] * 로직 바이러스들의 위치를 따로 담아둔다(virusList) 빈칸이 존재하면 개수를 카운팅하고 만약 개수가 0개라면 -> 0을 출력한다 그렇지 않다면 로직을 진행한다 따로 보관한 바이러스들의 리스트에 대해 M개를 뽑는 경우의 수를 구한다(조합) 경우의 수가 뽑힐 때 마다 바이러스를 퍼뜨려본다 (BFS) Time을 1초씩 늘려보면서 BFS를 진행해보고, 1초가 흐를 때마다 빈칸이 모두 바이러스로 퍼졌는지 확인한다 만약 모두 퍼졌다면 최소 시간을 갱신한다 // 연구소 3 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayLi.. 2020. 4. 29. SW 역량 테스트 기출 문제(새로운 게임 2) [새로운 게임 2 - 17837] * 로직 맵의 값, 각각의 말 정보들을 관리할 수 있는 리스트에 대한 클래스를 만들어 2차원 배열 맵을 생성한다 (MapInfo_17837[][]) 말의 위치, 방향을 관리할 수 있는 클래스를 만든다(Knight) 1번부터 K번째까지의 말의 정보들을 리스트에 순차적으로 담는다 1번말부터 꺼내어 턴을 진행한다 1번말이 존재하는 맵의 위치에 해당 말 위에 쌓여있는 말들이 존재하는지 확인한다 만약 존재한다면 임시 리스트에 말들의 정보를 담고, 현재 위치에 존재하는 말들은 제거해준다 이후, 1번말의 방향에 맞게 이동할 위치에 대하여 만약, 범위를 벗어나거나 파란칸(2) 이라면 말의 방향을 반대 방향으로 바꿔주고 바뀐 방향으로 한 칸 이동한다 한 칸 이동할 때 이동할 위치가 범위.. 2020. 4. 23. 이전 1 2 3 4 ··· 11 다음