[백준] 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]=..
글 목록
[백준] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 - Java 문제 출처 www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net ※ 풀이 필요한 말의 계수를 연산해서 반환하면 되는 단순한 문제이다. ※ 소스코드 import java.io.IOException; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { //input Scanner scan..
[백준] 9663번 N-Queen- Java 문제 출처 www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net ※ 풀이 체스판 위에서 퀸을 놓되 서로 공격할 수 없게 놓는 경우의 수를 구하는 문제이다. 필자는 재귀함수와 백트래킹을 이용하여 풀었다. 재귀함수 내 알고리즘은 다음과 같다 1. 놓으려는 해당 칸이 놓아도 되는 곳인가? -> 안되면 0반환 2. 놓아도 되는 곳이라면 이 칸이 마지막 행인가? -> 마지막 행이라면 1 반환(경우의 수로 카운트) 3. 마지막 행이 아닐 경우 다..
[백준] 2338번 긴자리 계산 - Java 문제 출처 www.acmicpc.net/problem/2338 2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). www.acmicpc.net ※ 주의할 점 파이썬 등 수 자료형이 큰 자릿수까지 커버 가능한 언어는 괜찮지만 자바는 Long으로도 해당 문제에서 주는 A,B 의 수를 감당할 수 없다. 따라서 자바에서는 별도의 클래스 BigInteger 를 사용하여 연산하도록 한다. ※ 소스코드 import java.io.IOException; import java.math.BigInteger; impo..