본문 바로가기

백준8

[백준 Silver 2] 10451 순열 사이클 - Java 문제링크 : https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 접근 과정 : 분리 집합이 바로 떠올랐기 때문에, 분리집합으로 접근했다. 순열의 크기만큼 집합 배열을 선언한다. 순열의 인덱스가 해당 원소를 가리키기 때문에, 인덱스와 원소를 합친다(union). 모든 순열의 순회한 뒤에, 집합 배열의 값이 0인 원소를 카운트 한다. 소스 코드 및 결과 : package BOJ;.. 2022. 1. 14.
[백준 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.