Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 최대 유량
- 후기
- 이분탐색
- 알고리즘
- Network Flow
- 프로그래머스
- backjoon
- 메모이제이션
- DP
- SQL
- 빅스비
- bixby studio
- INNER JOIN
- BOJ
- 완전탐색
- maximum flow
- 최대유량
- 분할정복
- 네트워크 플로우
- 빅스비 스튜디오
- 코딩테스트
- SDS 알고특강
- 삼성
- Baekjoon
- SWTest
- 세그먼트트리
- JOIN
- SWEA
- ICPC
- 백준
Archives
- Today
- Total
답은 알고리즘 뿐이야!
[BOJ 2661] 좋은수열 본문
문제 출처 : https://www.acmicpc.net/problem/2661
풀이 :
백트래킹 문제입니다.
1,2,3 중 하나의 수로 들어가는데 들어가기전에 맨 뒤에서 부터 한개씩 두개씩 ~ 확장하면서 같은 부분 수열이 있는지 유망성 검사를 해주고 들어가시면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include<stdio.h>
int n,arr[81],type;
bool backtracking(int itr)
{
if (itr > n)return true;
for (int i = 1; i < 4; i++) {
arr[itr] = i;
for (int j = 1; 2 * j <= itr; j++) {
type = 0;
for (int k = 0; k < j; k++) {
int c = itr;
if (arr[c - k] != arr[c - j - k])break;
if (k == j - 1)type = 1;
}
if (type)break;
}
if (type)continue;
if(backtracking(itr + 1))return true;
}
return false;
}
int main() {
scanf("%d", &n);
backtracking(1);
for (int i = 1; i <= n; i++)printf("%d", arr[i]);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'알고리즘 > 백준문제풀이' 카테고리의 다른 글
[BOJ 7453] 합이 0인 네 정수 (0) | 2020.01.02 |
---|---|
[BOJ 1644] 소수의 연속합 (0) | 2019.12.26 |
[BOJ 1932] 정수 삼각형 (0) | 2019.12.08 |
[BOJ 2644] 촌수계산 (0) | 2019.12.08 |
[BOJ 8902] 색상의 길이 (0) | 2019.11.25 |
Comments