11727 2xn 타일링 2
2×n 타일링 2 문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 풀이 타일링 채우는 것을 n이 1일때부터 차례대로 그려보면 쉽게 규칙을 찾을 수 있다. 1개를 그리는 방법 : ㅣ 2개를 그리는 방법 : ㅣㅣ, = ,ㅁ 3개를 그리는 방법 : ㅣ=, ㅣㅁ, ㅣㅣㅣ, =ㅣ, ㅁㅣ 3개부터 규칙을 찾아보면 1개에서 가로 작대기 두개로 3을 채우는 것과, 네모(2x2)로 채우는 두가지 방법 + 2개에서 세로 작대기 한개를 추가하여 3을 채우는..
23290 마법사 상어와 복제(Java)
마법사 상어와 복제 문제 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기, 블리자드 마법을 할 수 있다. 오늘은 기존에 배운 물복사버그 마법의 상위 마법인 복제를 배웠고, 4 × 4 크기의 격자에서 연습하려고 한다. (r, c)는 격자의 r행 c열을 의미한다. 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (4, 4)이다. 격자에는 물고기 M마리가 있다. 각 물고기는 격자의 칸 하나에 들어가 있으며, 이동 방향을 가지고 있다. 이동 방향은 8가지 방향(상하좌우, 대각선) 중 하나이다. 마법사 상어도 연습을 위해 격자에 들어가있다. 상어도 격자의 한 칸에 들어가있다. 둘 이상의 물고기가 같은 칸에 있을 수도 있으며, 마법사 상어와 물고기가 같은 칸에 있을 수도 있..