본문 바로가기

모의 역량 테스트15

모의 SW 역량테스트 (활주로 건설) * 알고리즘 시뮬레이션 * 로직 현재칸과 다음칸의 높이가 같다면 cnt++ 높이 차이가 1이고, cnt가 경사로 설치 가능 길이(X) 이상이라면 설치를 했다고 가정하고 cnt = 1로 초기화 높이 차이가 -1이라면 cnt = -X + 1을 통해 음수로 만들어 준 뒤 그 다음 재귀로 넘긴다 (다음 재귀부터 높이가 같다면 cnt++을 하다보면 0이 된 순간 경사로 설치 가능 여부를 구할 수 있음) (단, cnt >= 0 이어야 가능) 모든 조건에 부합하지 않는다면 possible = false 이를 반복한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Str.. 2020. 2. 27.
모의 SW 역량테스트 (줄기세포) * 알고리즘 시뮬레이션 BFS * 로직 초기 상태에 존재하는 세포의 정보를 큐에 저장한다 이때, 한 시간마다 상태를 체크하기 위해 세포의 생명력(life)을 걸리는 시간(time)으로 설정한다 큐는 생명력이 더 큰 세포가 번식에 우위를 가지기 때문에 정렬 기준을 세워준다 큐에서 꺼냈을 때 현재 상태가 비활성화 상태라면 -> 세포의 time을 한 시간씩 차감하고 다시 큐에 넣는다 활성화 상태라면 -> 인접한 구간에 번식을 진행하고 세포의 time을 한 시간씩 차감한다 (이때, 해당 세포 time의 절댓값이 세포의 생명력과 같아진다면 큐에 넣지 않는다) K만큼 시간이 경과하면 큐에 저장된 세포의 개수를 출력한다 //줄기세포 배양 import java.io.BufferedReader; import java.i.. 2020. 2. 18.
모의 SW 역량테스트 (벌꿀 채취) * 알고리즘 브루트포스 조합 * 로직 A가 채취할 수 있는 기준점을 이동시킨다 우선, A가 채취가능한 벌꿀 좌표를 마킹한다 채취한 벌꿀들 중에서 C 조건을 만족하는 최대의 조합을 구한다 이후, B가 채취 가능한 모든 벌꿀 좌표를 구한다 마찬가지로 채취한 벌꿀들 중에서 C 조건을 만족하는 최대의 조합을 구한다 A와 B의 합을 통해 최댓값을 갱신한다 좌표를 옮기며 이를 반복한다 //벌꿀채취 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.StringTokenizer; public class Problem_211.. 2020. 2. 17.