본문 바로가기

Algorithm54

[백준 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.
[백준 Gold 4] 21923 곡예 비행 - Java 문제링크 : https://www.acmicpc.net/problem/21923 21923번: 곡예 비행 동헌이는 모형 비행기 조종 대회에 참가하였다. 이 대회에서는 격자 모양의 공간에서 모형 비행기를 조종하여 얻는 비행 점수로 순위를 매긴다. 격자의 각 칸에는 점수가 부여되어 있고, 비행 www.acmicpc.net 접근 과정 : 상승 비행과 하강 비행을 따로 관리 (상승 구간과 하강 구간이 중복되는 칸이 1~N개 있다!!!) 상승 비행이 끝나는 칸 == 하강 비행이 시작하는 칸 비행 점수 = (r,c)까지 상승한 경우 + (r,c)부터 하강하는 경우 DP로 하강 비행을 탐색하고 하강 비행 탐색 로직 내부에서 상승 비행 탐색을 수행 하강비행 = (r,c)까지 상승비행 + (r,c)부터 하강비행 OR (.. 2021. 12. 16.
[백준 Gold 4] 14499 주사위 굴리기 - Java 문제 링크 : https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 문제 이해 : 지도 위에서, 주사위를 공처럼 굴리는 것을 상상 한 칸 굴렸을 때, 밑면의 숫자는 변하고, 윗면은 출력 주사위가 굴러갈 때, 어떻게 변하는 지 확인!! 접근 과정 : 굴러가는 방향에 따라, 주사위의 변화를 확인했고 이를 어떻게 반영할지 고민!! 첫번째 아이디어 주사위를 한 칸 굴리면 방향에 따라 한 칸씩.. 2021. 12. 16.