https://www.acmicpc.net/problem/3055 3055번: 탈출사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제www.acmicpc.netBFS 문제이다. 고려해야할 점이 2가지가 있다. 고슴도치도 이동하고 물도 이동하기때문에 이 둘을 같이 이동시킨다.고슴도치는 물이 차오르는 곳에 갈 수 없기 때문에 물을 먼저 이동시킨다. 이러면 물이 차오를 곳에 물이 들어가 있어서 고슴도치가 그곳으로 갈 수 없는 효과를 낸다.이제 고슴도치가 방문했던 곳을 다시 방문하지 않고, 물이 있는 곳을 방문하지 않기 위해서 표시를 하면서 이동하면 된다.고슴도치가 이동한 곳들..
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로www.acmicpc.netBFS 너비우선 탐색 문제입니다. 이 문제는 고려해야할 것들이 좀 있습니다.벽을 부수고 이동하는 중인지 벽을 부수지 않고 이동하는 중인지 알수 있도록 기록해야 합니다.방문한 지점을 다시 방문하지 않기위해 방문한 지점을 기록해야 합니다.1,2과 연결되는데 벽을 부수지 않고 이동할때 벽을 부수고 이동하는 지점을 다시 방문할 수 있습니다. 이렇게 하지 않을시 나중에 벽을 뚫지 못해서..
https://www.acmicpc.net/problem/2133 2133번: 타일 채우기3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자.www.acmicpc.net다이나믹 프로그래밍 문제입니다. 규칙을 찾아서 점화식을 만들면 됩니다. 문제에서 중요한점은 N이 짝수일 경우에는 2x1,1x2타일로 절대 채울수 없기 때문에 0을 출력해야합니다. 점화식을 세우는 과정을 예시를 들어서 설명하겠습니다.점화식을 구한 이후엔 dp배열을 만들어서 n들의 가짓수를 저장해줍니다. 그리고 저장한 값들을 통해서 원하는 값을 구합니다.본사진은 n이 8일때까지의 가짓수를 그린 사진입니다.n = 2 : 채우는 방식이 3가지가 있습니다.n = 4 : 채우는 방식 2가지가 더해집니다. 그리고 n-2인 가..
https://www.acmicpc.net/problem/2225 2225번: 합분해첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.www.acmicpc.net다이나믹 프로그래밍 문제이다. 문제의 포인트는 덧셈의 순서가 바뀐 경우 다른경우로 센다는 것과 0부터 N까지의 정수라는걸 기억해야한다. 가령 숫자 2를 2가지 정수를 더해서 만들때 0+2, 1+1, 2+0 이런식으로 3개의 경우가 생기는 것이다.이문제는 이런 결과를 저장해 나가는 방식으로 하면된다. 0부터 N까지의 정수를 1부터 k개를 더해서 나오는 경우의 수를 다 저장하면된다. 그후 배열의 가장 뒤에있는 숫자를 출력해주면 된다. 자세한것은 예시를 들어서 설명하겠다.다음은 문제 예제 입력 2로나와있는 N = 6 K = 4일경우의..
https://www.acmicpc.net/problem/2293 2293번: 동전 1첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.www.acmicpc.net다이나믹 프로그래밍 문제이다. 골드인거 치고 간단하다. 다른 다이나믹 프로그래밍처럼 이전 값을 가져와서 더해주면된다. 이번엔 예시와 함께 설명하겠다.위 사진은 가치의 합이 k일때 가짓수를 다 적어놨다. 1일땐 1한개 2일땐 1+1,2 두개인 식이다. 여기서 규칙을 찾아낼 수 있는 데바로 앞칸의 coin의 가치만큼 올라간값에 coin을 더해주는 방식으로 가짓수가 늘어난다는 것이다.좀더 보기 쉽게 정리했다..
https://www.acmicpc.net/problem/2294 2294번: 동전 2첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주www.acmicpc.net다이나믹 프로그래밍 문제이다. 해결 방법은 1원부터 k원까지 모든 가격당 필요한 최소 동전개수를 순서대로 구하면 된다. 이때 최소 동전 개수를 구하는 법은 k원에서 동전의 가치를 빼주고 남은 가치의 최소 동전 개수와 1을 더하면 k원의 최소 동전 개수가 된다(예시를 참고하면 더 쉽게 이해할 수 있다.). 모든 동전 종류당 한번씩 위 방식을 사용해주고 이중 최소 개수를 k원..