본문 바로가기

알고리즘60

[백준 Gold 4] 3055 탈출 - Java 문제링크 : https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 접근 과정 : 일반적인 BFS 방식으로 접근 물이 찰 공간으로 고슴도치가 이동할 수 없다. 시간++ -> 물 이동 -> 고슴도치 이동 순으로 반복해서 가장 빠른 시간을 탐색 만약 고슴도치가 더 이상 이동할 수 없다면, 비버의 집에 갈 수 없다!! 소스 코드 및 결과 : package BOJ; /* 탈출 */ import java.io.*; import java.util.*; public class.. 2021. 12. 18.
[백준 Gold 4] 1600 말이 되고픈 원숭이 - Java 문제링크 : https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 접근 과정 : BFS 방식으로 접근해야겠다고 생각 BFS를 진행하면서, 방문체크를 어떻게 해야할 지 고민 int[][] visit로 방문을 체크하되. 그 값을 방문 당시의 남아있는 점프횟수로 하였다. 즉, visit[i][j]의 값의 현재 k의 값보다 크다면, 이미 이전에 방문했던 적이 있다고 판단. 소스 코드 및 결과 : package BOJ; /* 말이 되고픈 원숭.. 2021. 12. 18.
[백준 Platinum 5] 3197 백조의 호수 - Java 문제링크 : https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 접근 과정 : 접촉되어 있는 물(.)의 칸을 묶어서 영역으로 표현 백조 두마리의 영역이 같으면, Return!! 같이 않으면, 물과 접촉되어 있는 얼음을 녹임 초기 아이디어 방금 녹은 물을 나타내는 큐와 다음에 녹을 얼음을 나타내는 큐를 사용. 방금 녹은 물의 영역을 체크 -> 백조 두 마리의 영역을 판단 -> 다르면 얼음을 녹임 (인접한 얼음을 Ice 큐.. 2021. 12. 17.
[백준 Silver 3] 15270 친구 팰린드롬 - Java 문제링크 : https://www.acmicpc.net/problem/15270 15270번: 친구 팰린드롬 초등학생인 재홍이는 이번 봄 학예회 때, 재홍이가 지휘를 맡고 반 친구들이 춤을 추기로 계획했다. 이 춤은 시작할 때 춤추는 친구들이 일렬로 쭉 서서 각자 막춤을 추다가, 가운데 있는 친구를 www.acmicpc.net 접근 과정 : 반 친구들은 1:1로 묶여져야 한다. 관계도의 조합을 만들어가고, 각 조합에 따라 친구의 사용 유무를 확인하여 가능한 최대수를 찾는다!! 최대한 세울 수 있는 친구 수가 N보다 작다면, 1명을 추가!! 소스 코드 및 결과 : package BOJ; import java.io.*; import java.util.*; /* 친구 팰린드롬 */ public class BO.. 2021. 12. 16.