본문 바로가기

Problem Solving1225

[백준] 1010 다리 놓기 - Dynamic Programming / Java • 문제 링크 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static void main.. 2022. 12. 3.
[백준] 1788 피보나치 수의 확장 - Dynamic Programming / Java • 문제 링크 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) t.. 2022. 12. 2.
[백준] 2302 극장 좌석 - Dynamic Programming / Java • 문제 링크 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net • 풀이 과정 vip석에 따라 점화식 구조가 달라지므로 각각의 vip석 번호를 Set 에 저장해둔다. 만약 vip석이 존재하지 않는 경우, n = 0 ~ 4 까지의 경우의 수를 구해 규칙성을 찾아내면 dp[i] = dp[i - 1] + dp[i - 2] 의 점화식을 구할 수 있다. 하지만 현재 또는 이전 좌석이 vip석일 경우, (set.contains(i) || set.contains(i - 1)) 해당 좌석으로 자리 이동이 불가하므로 이전에 구해진 경우의 .. 2022. 12. 1.
[백준] 1003 피보나치 함수 - Dynamic Programming / Java • 문제 링크 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStre.. 2022. 11. 30.
[백준] 2493 탑 - Data Structure / Java • 문제 링크 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net • 풀이 과정 각각의 탑의 번호와 높이를 저장할 Tower 객체를 정의하고 Stack 자료구조의 제네릭으로 지정한다. 입력받은 탑의 정보를 스택에 삽입하면서, peek() 하여 반환한 스택 최상단 요소의 height 값, 즉 왼쪽 탑의 높이를 현재 탑과 비교하여 만약 왼쪽 탑이 높이가 낮다면 레이저 신호를 수신할 수 없으므로 pop() 하고, 높이가 같거나 높다면 해당 왼쪽 탑의 번호를 정답으로써 출력한다. 만약 스택이 비어있을 시, 현재 탑으로.. 2022. 11. 29.
[백준] 2504 괄호의 값 - Data Structure / Java • 문제 링크 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public class Main { public static void main(String.. 2022. 11. 28.