[백준] 1874번 스택수열 - Java 문제 출처 www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net ※ 풀이 스택 개념에 대한 활용 문제이다. 스택을 직접 구현해도 되지만 자바 패키지에서 기본적으로 제공해주는 Stack 을 활용하여 풀어보았다. ※ 소스코드 import java.io.BufferedReader; import java.io.IOException; import ja..
알고리즘/백준
[백준] 1259번 팰린드롬수 - Java 문제 출처 www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net ※ 풀이 받아온 문자열들을 charAt 함수로 한글자씩 맨 앞과 맨 뒤 값들을 같은 지 비교해 나간 후 다르다면 no 를 반환, 같으면 yes 를 반환하면 된다. ※ 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Ar..
[백준] 14852번 타일 채우기3 - Java 문제 출처 www.acmicpc.net/problem/14852 14852번: 타일 채우기 3 첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다. www.acmicpc.net ※ 풀이 이 문제의 경우도 2xn 타일 채우기와 유사한 응용문제이다. 동적계획법을 이용하여 점화식을 세워서 풀면 되는데 여러곳에 문제의 함정이 숨어있다... 먼저 점화식을 세우기 위해 규칙을 추론해보면 a[1]=2 a[2]=7 ... a[n]=2* a[n-1] + 3*a[n-2]+ (2* a[n-3]+ 2*a[n-4] + .... + 2*a[0] ) 이런식의 결과가 나온다. 이유는 백준의 2133 번 타일채우기와 유사한 결과 인데 이렇게 식을 세워서 코드를 만들..
[백준] 2133번 타일 채우기 - Java 문제 출처 www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net ※ 풀이 이 문제 또한 2xn 타일 채우기와 유사한 문제이지만 높이가 3으로 늘어나서 난이도가 높아진 문제이다. 마찬가지로 동적계획법(DP)을 이용하여 점화식을 세워 풀어나가면 되지만 점화식을 세우는 과정에 생각해봐야 할 부분이 많다... 먼저 이 문제의 경우 홀수가 주어질 경우 타일을 끼워맞출 수 없다. 때문에 주어진 값이 홀수일 경우 계산하지 않고 0을 반환하도록 하였다. 짝수인 경우에는 다음과 같이 추론해볼 수 있다. a[2]=3 a[4]=11 ... a[n]=..