티스토리 뷰
https://www.acmicpc.net/problem/10942
10942번: 팰린드롬?
총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다.
www.acmicpc.net
d[i][j] = 구간 [i,j]가 팰린드롬인지 여부
팰린드롬의 성질을 이용해서 구간을 확장시켜가면서 a[i]와 a[j]가 같을 때, d[i+1][j-1]이 참인지 확인하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <cstdio>
int i,j,k,n,m,p,q,a[2001];
bool d[2001][2001];
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]),d[i][i]=1;
if(a[i-1]==a[i]) d[i-1][i]=1;
}
for(k=3;k<=n;k++) for(i=1,j=k;j<=n;i++,j++)
if(a[i]==a[j] && d[i+1][j-1]) d[i][j]=1;
scanf("%d",&m);
while(m--) scanf("%d %d",&p,&q),printf("%d\n",d[p][q]);
return 0;
}
|
cs |
'Algorithm > BOJ' 카테고리의 다른 글
12969 ABC (0) | 2019.10.13 |
---|---|
1328 고층 빌딩 (0) | 2019.10.13 |
1890 점프 (0) | 2019.10.12 |
11048 이동하기 (0) | 2019.10.12 |
9536 여우는 어떻게 울지? (0) | 2019.09.26 |