삼성 SW expert academy17 모의 SW 역량테스트(벽돌깨기) * 알고리즘 브루트포스 시뮬레이션 * 로직 열(0~W)을 기준으로 구슬을 떨어뜨릴수 있는 경우를 구한다(중복순열) 경우를 구했다면 벽돌깨기를 진행한다 경우의 수를 하나씩 꺼낸다 제일 먼저 만나는 벽돌이 있다면 해당 위치를 기준으로 벽돌깨기를 진행한다 이를 경우의 수만큼 진행한다 모든 벽돌깨기가 끝났다면 남은 벽돌의 개수를 구한다 최솟값으로 답을 갱신한다 //벽돌깨기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.S.. 2020. 3. 20. 모의 SW 역량테스트 (특이한 자석) * 알고리즘 시뮬레이션 * 로직 명령을 받으면 해당 자석을 기준으로 왼쪽으로 가능한 자석들을 리스트에 담는다 해당 자석을 기준으로 오른쪽으로 가능한 자석들을 리스트에 담는다 리스트에 담긴 요소들을 dir에 맞게 회전시킨다 명령 개수만큼 반복한 후 답을 출력한다 //특이한 자석 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.StringTokenizer; class MagnetInfo { public int idx; public int dir; public MagnetInfo(int idx, int dir) .. 2020. 3. 12. 모의 SW 역량테스트 (탈주범 검거) * 알고리즘 BFS 시뮬레이션 * 로직 각 구조물이 가지는 방향을 관리하는 배열을 생성한다 (structures[][]) 시계방향(북,동,남,서)에 대한 기본적인 방향 배열을 생성한다(directions[][]) 맨홀 뚜껑의 위치를 큐에 담고 BFS를 진행하면된다 현재 위치에서 이동 가능한 방향을 탐색한다 이동이 가능하다면 해당 방향으로 이동한다 이동할 곳이 연결 가능한지 판단한다 (이동할 곳의 구조물이 현재 방향에서 진행된 방향의 반대방향이 존재하는지) 연결 가능하다면 큐에 넣고 개수를 카운팅한다 bfs 로직이 끝나면 답을 출력한다 //탈주범 검거 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe.. 2020. 3. 12. 이전 1 2 3 4 5 6 다음