전체 글
BOJ - 아기 상어 16236번 (JAVA)
❓ 문제 - 백준 아기 상어 16236번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/16236) 📝 문제해결법 1. 이 문제는 BFS + 구현으로 풀었다. 아기상어는 현재위치에서 BFS를 통해 거리가 가장 가깝고, 거리가 같으면 행이 가장 작고, 행이 같으면 열이 작은 물고기를 구한다. 만약 BFS에서 반환되는 값이 NULL, 즉 먹을 수 있는 물고기가 없으면 종료하고 값을 출력한다. BFS내에서 아기상어는 자기자신보다 작은 사이즈의 물고기에 대한 정보를 우선순위큐 pq에 넣고, 자기 자신과 크기가 같거나 자기 자신보다 크기가 작은 물고기를 지나갈 수 있으므로 지나다니면서 먹을 수 있는 물고기를 찾아 다닌다. 우선순위 큐에서 하나 꺼낸 게 아기상어가 먹으러가는 물..
BOJ - 인구 이동 16234번 (JAVA)
❓ 문제 - 백준 인구 이동 16234번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/16234) 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 📝 문제해결법 1. 이 문제의 핵심은 그래프탐색(BFS)로 해결하는 것이다. 두 개의 큐를 이용해 전체 나라를 탐색을 위한 queue와 국경선을 공유한 것의 지역을 담을 queue2를 통해 해결 한 지역에 대해 국경선 공유할 때 연합인구수와 연합을 이루고 있는 국가 수를 저장하기 위해 cnt변수 이용 queue에 ..
BOJ - 나무 재테크 16235번 (JAVA)
❓ 문제 - 백준 나무재테크 16235번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/16235) 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현 + 자료구조(queue)로 풀었다. 나무들은 Queue에 Tree 객체 형태로 관리한다. 1년마다 영양분을 뿌릴 양을 add 2차원 배열에 저장한다. map 2차원배열로 땅에 대한 양분정보를 저장한다. 봄에 만약 한 1*1 구역에 여러 나무가 심어져있다면 양분을 먼저 먹는 건 ..
BOJ - 큐빙 5373번 (JAVA)
❓ 문제 - 백준 큐빙 5373번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/5373) 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. (아주 빡구현 ^^..ㅎ) 각 면 윗면, 바닥면, 앞면, 뒷면, 왼쪽면, 오른쪽면에 색깔 값을 2차원배열로 관리하며 돌린다. 돌리라는 면과 방향(시계 or 반시계)에 맞춰 함수를 돌려준다. -> 영향받는 다른 면들 상태 변경 그리고 해당면을 방향(시계 or 반시계)에 맞춰 90도 돌리는 함..