차곡차곡 성 쌓기
article thumbnail
[백준] 쉬운 계단 수 : 10844 : Java - DP (S1)
알고리즘/백준 2023. 12. 3. 00:26

1. 문제 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 길이가 N인 계단 수가 몇 개? 계단 수란 인접한 모든 자리의 차이가 1인 수를 말한다. 1

article thumbnail
[백준] 파일 합치기3 : 13975 : Java - 그리디 (G4)
알고리즘/백준 2023. 12. 2. 19:39

1. 💎 문제 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 모든 장을 합쳤을 때 최소 비용을 구한다 2개를 선택해서 더한다. 2. 🤔 어떻게 풀까 최소의 비용을 얻을 수 있는 방법은? 예제를 통해 어떤 경우에 최소가 될 수 있는지 분석했다. 알아낸 점은 일찍 선택할 수록 더 많은 횟수를 더하게 된다는 점이었다. 이 문제는 합쳐진 것도 계속 더해가면서 누적을 해야되기 때문이다. 그래서 최대한 작은 수대로 먼저 2개씩 더해야겠다고 생각했다. 생각을 적용해서 다시 예제를 풀어보니 개별 파일 중에서 가장 작은 ..

article thumbnail
[백준] 점프 : 1890 : Java - DP (S1)
알고리즘/백준 2023. 11. 29. 17:51

1. 💎 문제 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 2. 🤔 어떻게 풀까 현재 위치에서 이동할 수 있는 경우의 수는 2가지 뿐이다. 오른쪽 또는 아래로 현재 칸에 적혀있는 수만큼 이동하는 것이다. 그러므로 위치마다 2가지 경우를 고려하여 경우의 수를 누적한다. 코드가 짧아 바로 전체 코드로 간다. 3. 🖥️ 전체 코드 행렬의 순서대로 요소를 탐색한다. 현재 칸에 적혀있는 수만큼 오른쪽, 아래로 이동하여 이동한 위치의 경우의 수를 증가시킨다. int length = (int)map[i][j..

article thumbnail
[백준] 배 : 1092 : Java - 그리디 (G5)
알고리즘/백준 2023. 11. 29. 00:28

1. 💎 문제 2. 🤔 어떻게 풀까 N개의 크레인 -> 동시에 이용 가능 각 크레인에는 실을 수 없는 무게 제한이 있음(포함) 이 두가지 조건을 중심으로 생각했다. 최소의 시간이 걸리기 위해서는 크레인들에게 균형있게 화물을 분배해줘야 한다. 이때 무게가 작은 박스는 어떠한 크레인이든 사용할 수 있지만, 무게가 커질 수록 사용할 수 있는 크레인은 적다. 그러므로 무게가 무거운 박스를 어떻게 분배하면 좋을지 생각했다. 해답은 무거운 박스부터 적절한 크레인을 선택하여 싣게하는 것이다. 적절한 크레인을 어떻게 고르냐 생각했을 때, 그 순간 무게 제한이 박스의 무게를 포함하면서, 이동시켜야할 박스의 수가 제일 적은 것을 선택하기로 했다. 결국 중요한 것을 균형있는 분배이다. 그러므로 제일 작업량이 작은 크레인을 ..

article thumbnail
[백준] DSLR : 9019 : Java - BFS, 최단 거리 (G4)
알고리즘/백준 2023. 11. 27. 14:43

1. 💎 문제 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 4개의 명령으로 A에서 B를 만들 수 있는 최소한의 명령어의 나열을 구한다. 나열이 여러가지면, 아무거나 출력한다. D : D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지를 취한다. S: S 는 n에서 1 을 뺀 결과 n-1을 레지스터에 저장한다. n이 0 이라면 9999 가 대신 레지스터에 저장된다. L: L 은 n의 각 자릿수를 왼편으로 회전시켜 그 결과를 레지스터에 저장한다. 이 연..