Algorithm101 브루트포스(체스판 다시 칠하기) [체스판 다시 칠하기 - 1018] * 로직 (0,0)부터 8*8 보드를 만들 수 있는 기준점으로 한 칸씩 이동한다 이동하면서 왼쪽 상단의 시작인 "W", "B"인 경우를 고려한다 "W"인 경우 행이 짝수이면서 열도 짝수라면 -> 해당 좌표 값이 "W"가 아니면 cnt++ 열이 홀수라면 -> 해당 좌표 값이 "B"가 아니면 cnt++ 행이 홀수이면서 열이 짝수라면 -> 해당 좌표 값이 "B"가 아니면 cnt++ 열이 홀수라면 -> 해당 좌표 값이 "W"가 아니면 cnt++ "B"인 경우도 같은 방식으로 진행한다 최소 개수를 갱신하고 출력한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;.. 2020. 2. 25. 모의 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. 이전 1 ··· 15 16 17 18 19 20 21 ··· 34 다음