-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
--- | ||
marp: true | ||
--- | ||
|
||
# Recursion | ||
소프트웨어학부 진민성 | ||
|
||
--- | ||
# 등차수열의 합 | ||
### 풀이 | ||
- 어떤 수열 $A=\left\{ A_1,A_2,\cdots ,A_N \right\}$이 등차수열이라는 것은, $2\leq i\leq N$인 모든 $i$에 대해 $A_i-A_{i-1}$이 모두 동일한 수열을 말한다. 정의에 따라 길이가 $2$ 이하인 수열은 항상 등차수열이다. | ||
- $0~ 0~ 0~ 0~ 0~ 0~ 0~ ...$은 등차수열 | ||
- 따라서 b,c는 항상 존재하고 $A$와 $0$으로 이루어진 수열을 출력하면 된다. | ||
|
||
--- | ||
# SW 수열 구하기 | ||
### 풀이 | ||
- $| A_i - A_{i-1} | > |A_{i+1} - A_i|$이다. | ||
- 가장 차이가 큰 1과 N을 가장 앞에 두고 생각해보자 | ||
- $1,~N$ 다음으로 차이가 큰 수를 생각해보면 2이다. | ||
- 마찬가지로 생각을 해보면 $\set{1, N, 2, N-2, ... N/2}$이런 모양의 수열이 나온다. | ||
|
||
--- | ||
# 동가수열 구하기 | ||
### 풀이 | ||
- 동가수열은 $1$ 이상 $N$ 이하인 정수로 이루어져 있고, 모든 원소는 서로 다르다. | ||
- 동가수열의 서로 이웃한 원소의 차는 $\lfloor \frac{N}{2} \rfloor$이상이다. | ||
- 단순하게 $a$다음 $a+\lfloor n/2 \rfloor$를 배치했다고 생각해보자. | ||
- 그러면 $a+\lfloor n/2 \rfloor$ 다음에 올 수 있는 수로 $a-1$을 생각해볼 수 있다. | ||
``` | ||
for(int i=n/2;i>0;i--) cout << i << ' ' << i+n/2 << ' '; | ||
``` | ||
- n이 홀수인경우에만 예외처리 해주면 풀 수 있다. | ||
|
||
--- | ||
# 영어 시험 | ||
### 풀이 | ||
- 길이 N의 character set S로 이루어진 모든 문자열과 최장공통부분수열이 같은 최소 길이의 문자열을 찾는 문제 | ||
- 문자열의 $i$번째 문자를 생각해 보자 | ||
- 모든 $i$번째 문자에 대해서 $c \in S$모든 c를 뽑을 수 있으면 된다. | ||
- 따라서 $S$를 $N$번 출력하면 된다. | ||
|
||
--- | ||
# 회문은 회문아니야!! | ||
### 풀이 | ||
- 팰린드롬이 아닌 가장 긴 부분문자열의 길이를 출력한다. 그런 부분문자열이 없으면 -1을 출력한다. | ||
- 만약 문자열이 팰린드롬이 아니면 주어진 문자열의 길이를 그대로 출력하면 된다. | ||
- 문자열이 하나의 문자로 이루어져 있으면 항상 팰린드롬 이므로 -1을 출력한다. | ||
- 문자2개이상으로 이루어진 팰린드롬이라면 맨앞이나 맨뒤 문자하나를 빼면 팰린드롬이 아니게 되므로 문자열길이-1을 출력하면 된다. | ||
|