BOJ(9)
-
[백준/1149/Java] RGB 거리
문제: www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제내용 RGB거리에는 집이 N개 있습니다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있습니다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1..
2021.04.04 -
[백준/16236/Java] 아기상어
문제: 16236번: 아기 상어 (acmicpc.net) 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제를 먼저 풀고 오시는 것을 추천합니다. 이 문제의 풀이는 BFS 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 문제분석 문제에 아기상어에 대한 제한조건이 많은 편입니다. N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있습니다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있고 한 칸에는 물고기가 최대 1마리 존재합니다. 아기 상어와 물고기는 모두 크기..
2021.03.13 -
[백준/1753/Java] 최단경로 - 다익스트라 풀이
문제 www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 문제를 먼저 풀고 오시는 것을 추천합니다. 이 문제의 풀이는 다익스트라(Dijkstra) 알고리즘 풀이 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 문제분석 시작점에서 갈 수 있는 모든 정점을 찾아야 합니다. 각 정점까지의 최단경로의 경로값을 구합니다. 즉, 각 정점까지의 가중치 합이 가장 최소로 되는 값을 구합니다. 그러므로 시작점에서 갈 수..
2021.02.19 -
[백준/1012/Java] 유기농 배추 - BFS 풀이
문제 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제를 먼저 풀고 오시는 것을 추천합니다. 이 문제의 풀이는 BFS 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 문제분석 배추흰지렁이는 인접한 다른 배추로 상하좌우 이동할 수 있습니다. 배추가 모여있는 곳은 배추흰지렁이가 한 마리만 있으면 됩니다. 배추가 군데군데 모여있어서 몇 군데에 퍼져있는지 조사하면 총 몇 마리의 지렁이가 필요한지 알 수 있습니다. 0은 배추가 없는 땅이고, 1..
2021.02.09 -
[백준/1260/Java] DFS와 BFS
문제: www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제를 먼저 풀고 오시는 것을 추천합니다. 이 문제는 제목에도 표현되어 있지만 DFS, BFS 알고리즘을 사용할 줄 아는지 물어보는 문제입니다. 문제분석 그래프를 DFS, BFS로 탐핵한 결과를 출력하라는 문제입니다. 단, 방문할 수 있는 정점이 여러 개인 경우 정점 번호가 작은 것부터 방문하시면 되고 더이상 방문할 수 있는 점이 없으면 종료하면 됩니다. 이번 그래프..
2021.02.07 -
[백준/1463/Java] 1로 만들기 - DP 풀이
문제 www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제를 먼저 풀고 오시는 것을 추천합니다. 이 문제의 풀이는 DP(Dynamic Programming) 외에도 다양한 방법이 있을 수 있으며 제가 보여드리는 풀이는 그 중 하나입니다. 문제분석 정수 X에 사용할 수 있는 연산은 세가지입니다. ① 1을 뺀다. -> X가 어떤 수이든지 1을 뺄 수 있다. ② X가 2로 나누어 떨어지면, 2로 나눈다. ③ X가 3으로 나누어 떨어지면 3으로 나눈다. 실제 문제와 다르게 알아보기 쉽게 하기 위하여 1번은 1 빼기, 2번은 2로 나누기, 3번은 3으로 나누기로 재정리하였습니다. ..
2021.02.04