Algorithm/BOJ (39) 썸네일형 리스트형 [BOJ] 14502. 연구소 G5 JAVA 문제 이해 - 배열의 값 0 (빈칸), 1 (벽), 2 (바이러스)으로 나누어진다. - 바이러스는 4방 ( 상/하/좌/우 )으로 이동한다. - 벽은 3개가 있으며, 3개 모두다 세워야한다. - 안전영역은 벽으로 둘러쌓여있는 안쪽 영역이다 - 안전영역의 최대 값을 구하자. 아이디어 일단 코드 흐름을 잡아보았다. 1. 벽 3개를 랜덤하게 세우고,,,(그 위치는 빈칸이어야한다) 2. 바이러스를 퍼뜨리고 3. 안전지대 영역을 세고 4. Max값을 갱신해주고. 이거를 벽을 세우는 경우의 수 만큼 반복하면 될 것 같았다. 프로세스야 그렇다 쳐도.. 1번에서 고민이 좀많았는데 결국은 nCr로 풀어야겠다고 생각을 해냈고, 조합으로 랜덤한 3개의 인덱스를 뽑아낸다.( r은 어차피 벽이 3개로 고정되어있다. ) 근데 또!.. [BOJ] 2636. 치즈 G5 (JAVA) 문제 이해 - 공기에 접촉되는 부분(=가장 가장자리부분)의 치즈는 1시간 마다 녹는다. - map의 가장자리는 치즈가 놓일 수 없다. - 치즈가 전부 다 녹는 시간, 다 녹기 직전에 몇개의 치즈가 있는지 구해야한다. 아이디어 - BFS 1. 외부 공기 셋팅 2. 녹일 치즈가 맞는지 찾기(공기접촉부분) 3. 녹일 치즈 개수 저장 4. 치즈 녹이기 5. 시간 증가(1시간씩) 파트별로 구현하기 1. 외부 공기 셋팅 static void setAirCondition() { boolean[][] visitAir = new boolean[X][Y]; // 방문 체크를 위한 배열 Queue q = new LinkedList();// bfs용 큐 q.offer(new Pos(0, 0));// 0,0은 무조건 공기(조건.. [BOJ] 14499. 주사위 굴리기 G5 (JAVA) 문제 이해 더보기 문제 이해를 위해 요약한다. - 지도의 사이즈 N*M, 각 칸에 수가 쓰여있다. - 주사위 좌표 r,c 는 지도의 북으로 부터 r 그리고 서쪽으로 부터 c만큼 떨어져있는 것을 의미. - 주사위는 0으로 초기화된다 - 주사위를 굴렸을 때 이동한 지도 칸의 숫자가 0인 경우 ) 주사위 바닥 숫자를 지도 칸에 복사한다 그 외 경우 ) 지도 칸의 숫자를 주사위 바닥으로 복사해주고, 지도 칸의 숫자를 0으로 수정 - 주사위를 이동할 때 지도 밖으로 이동은 불가하고, 출력도 하지않는다. - 명령의 종류는 1:동, 2:서, 3:북, 4:남 이다. 아이디어 더보기 - 예시 전개도를 기준으로 동/서/북/남 으로 이동시켜본다. - 동쪽으로 이동시킨 전개도 - 서쪽으로 이동시킨 전개도 - 북쪽으로 이동시킨.. 이전 1 ··· 4 5 6 7 다음