본문 바로가기

전체 글

(117)
백준 18287번: 체스판 이동 www.acmicpc.net/problem/18287 18287번: 체스판 이동 크기가 N×M인 체스판이 있다. 체스판의 행 번호는 위에서부터 1, 2, ..., N이고, 열 번호는 왼쪽에서부터 1, 2, ..., M이다. 체스판의 각 칸은 (i, j)로 표현하고, i는 행 번호, j는 열 번호이다. 체스판의 www.acmicpc.net 우선 체스판이 어떻게 생겼는지 알아야 합니다. 검정색 칸을 $B$, 흰색 칸을 $W$라고 표현할 때 체스판의 생김새는 다음과 같습니다. $\begin{matrix}B & W & B & W & \cdots\\ W & B & W & B & \cdots\\ \vdots & \vdots & \vdots & \vdots & \ddots\end{matrix}$ $M$을 적당히 큰 ..
백준 9341번: ZZ www.acmicpc.net/problem/9341 9341번: ZZ 각 테스트 케이스마다 ZZ(c, d) mod 1 000 000 009를 출력한다. www.acmicpc.net 이전 글 (백준 13430번: 합 구하기) 을 보고 오셨다면 비슷한 점을 느끼실 수 있는 문제입니다. 사실 풀이가 거의 똑같습니다. 그런 점에서 이 문제는 처음부터 식 변형을 통해 점화식을 이끌어내겠습니다. 우선 $i\geq 1$에 대해 $ZZ\left(i,1 \right)=a$ 입니다. 이는 다음을 통해 보일 수 있습니다. $ZZ\left(i,1 \right)=ZZ\left(i-1,1 \right)=\cdots=ZZ\left(1,1 \right)=ZZ\left(0,1 \right)=a$ 이제 다음 두 식을 비교해보겠습니다. ..
백준 13430번: 합 구하기 www.acmicpc.net/problem/13430 13430번: 합 구하기 첫째 줄에 k와 n이 주어진다. (1 ≤ k ≤ 50, 1 ≤ n ≤ 1,000,000,000) www.acmicpc.net 기본적인 아이디어를 얻기 위해 작은 경우부터 나열해보는 게 좋은 문제입니다. $S\left ( i,j \right)$ 의 값은 $i=0$ 일 때 : $1$, $2$, $3$, $4$, $5$, $\cdots$ $i=1$ 일 때 : $1$, $3$, $6$, $10$, $15$, $\cdots$ $i=2$ 일 때 : $1$, $4$, $10$, $20$, $35$, $\cdots$ $i=3$ 일 때 : $1$, $5$, $15$, $35$, $70$, $\cdots$ $i=4$ 일 때 : $1$, $6$,..
백준 16467번: 병아리의 변신은 무죄 www.acmicpc.net/problem/16467 16467번: 병아리의 변신은 무죄 학교공부를 끝내고 집을 가던 다진이는 길가에서 병아리를 팔고 있는 아저씨를 발견했다. 병아리를 무척 사고 싶었던 다진이는 병아리의 상태를 확인하지도 않고 한 마리를 사서 집으로 향했다 www.acmicpc.net 이전에 올렸던 (백준 17272번: 리그 오브 레전설 (Large))과 상당히 비슷한 문제라고 할 수 있습니다. 주어진 힌트를 잘 분석하면, $i$ 번째 날에 처음 등장한 알은 $i+K$ 번째 날에 병아리가 된다는 걸 알 수 있습니다. $i$ 번째 날의 병아리의 수를 $A_{i}$ 라고 표기하겠습니다. $i$ 번째 날에 처음 등장한 알은 곧 $i-1$ 번째 날의 병아리들이 낳은 알이므로 그 개수가 $A_{i..
백준 17272번: 리그 오브 레전설 (Large) www.acmicpc.net/problem/17272 17272번: 리그 오브 레전설 (Large) 규환이는 리그 오브 레전설이라는 게임을 좋아한다. 이 게임에서는 N초의 시간 동안 싸움을 하는데, 규환이가 플레이하는 캐릭터는 A, B 두 가지 스킬을 사용할 수 있다. A 스킬의 시전 시간은 1 www.acmicpc.net 이 문제와 비슷한 형태의 행렬 점화식이 문제에서 종종 나오는데, 난이도가 꽤 있는 유형이라고 생각합니다. 시간이 N일 때 가능한 스킬 조합의 수를 $A_{N}$ 이라고 해보겠습니다. 우선 간단한 경우를 먼저 탐색해보기 위해 $M=2$ 라고 해보겠습니다. 그 경우 $A_{1}=1,A_{2}=2,A_{3}=3,A_{4}=5,A_{5}=8,\cdots$ 나름대로 피보나치 수열과 비슷한 모습..
백준 13246번: 행렬 제곱의 합 www.acmicpc.net/problem/13246 13246번: 행렬 제곱의 합 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 둘째 줄부터 N개의 줄에 행렬의 각 원소가 주어진다. 행렬의 각 원소는 1,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 저번 글(백준 1492번: 합)과 비슷하게 $B$ 개의 항을 전부 구하려 하면 반드시 시간초과가 뜨게 되어있습니다. 즉 이번에도 적절한 방법을 찾아야 하는데, 다행히 1492번 보다는 쉽게 발견할 수 있는 편입니다. 본문의 기호를 좀 차용해서 다음과 같이 써보겠습니다. $S\left ( B \right )=A^{1}+A^{2}+\cdots+A^{B}$ $B$ 가 짝수..
백준 1492번: 합 www.acmicpc.net/problem/1492 1492번: 합 N과 K가 주어졌을 때, 1K + 2K + 3K + ... + NK를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음 봤을 때 굉장히 당황했던 문제입니다. 그리고 개인적으로 꽤나 피곤한 문제였습니다. $K$의 범위가 상당히 작긴 하지만, $N$개의 항을 모두 구해서 더하는 건 말도 안 되는 짓이라는 걸 바로 알 수 있습니다. 그렇다면 뭔가 방법이 있다는 뜻입니다. 이제 $1^{K}+2^{K}+3^{K}+\cdots+N^{K}=Sum\left ( N,K \right )$ 라고 해보겠습니다. 그렇다면 $Sum\left ( N,K \right )$와 $Sum\left ( N+1,K \r..
백준 15824번: 너 봄에는 캡사이신이 맛있단다 www.acmicpc.net/problem/15824 15824번: 너 봄에는 캡사이신이 맛있단다 한 줄에 모든 조합의 주헌고통지수 합을 1,000,000,007로 나눈 나머지를 출력한다. www.acmicpc.net 김유정의 에서 점순이의, "너 봄감자가 맛있단다."라는 말에서 따온 문제입니다. 우선 이 문제에서 주어진 예제를 생각해보겠습니다. (예제 입력 1) $\left [ 5,2,8 \right ]$ 와 같이 메뉴의 스코빌 지수가 주어졌을 때 모든 조합의 주헌고통지수의 합을 구해봅시다. 그런데 예를 들어 $\left [ 2,8 \right ]$ 의 스코빌 지수를 가진 음식을 먹을 때, 주헌고통지수가 6임은 알기 쉬우나 $\left [ 5 \right ]$ 과 같이 스코빌 지수를 가진 음식을 먹을 ..