본문 바로가기
Algorithm/📖Baekjoon

#10942 팰린드롬? - 미완

by yewoneeee 2022. 4. 13.

팰린드롬(palindrome): 앞뒤를 뒤집어도 똑같은 문자열

 

# 문제

 

# 입력 및 출력

 

# 풀이

시간이 0.5초 인 것을 보아 적절한 알고리즘을 찾지 못하면 시간초과가 걸릴 것 같은데

일단 시간은 배제하고 단순한 코드로 작성해보았다

#include <iostream>
using namespace std;
int N, M, s, e, isPD;
int dp[2001];

int main() {
	cin >> N;
	for (int i = 1; i <= N; i++) {
		cin >> dp[i];
	}
	cin >> M;
	for (int i = 0; i < M; i++) {
		isPD = 0;
		cin >> s >> e;
		for (int j = s; j <= e; j++) {
			if (dp[j] != dp[e - j + 1]) {
				isPD++;
			}
		}
		if (isPD != 0) cout << 0 << endl;
		else cout << 1 << endl;
	}
}

역시나 시간 초과가 걸린다

M의 범위가 1 ≤ M ≤ 1,000,000 인데다가 안에 for문이 하나 더 있어서 시간 복잡도가 늘어난 것 같다

일단 M만큼은 무조건 돌아야 하기 때문에 안에 있는 for문을 줄이는 방법을 찾아야 할 것 같다

 

https://4z7l.github.io/2021/04/07/algorithms-boj-10942.html

 

[C++ 알고리즘] 백준 10942번 : 팰린드롬? - HERSTORY

DP 풀이과정 1. 알고리즘 선택 문제를 보자마자 떠올렸던 풀이방법의 시간복잡도를 계산해보았다. s,e를 입력받을 때 마다 s~e까지 검사하며 팰린드롬 여부를 확인하는 방법 이 방법은 1 ≤ N ≤ 2,0

4z7l.github.io

 

이사람처럼 나중에 시간복잡도 계산이랑 전부 예외 케이스 찾는 방식으로 블로그 안보고 다시 풀어봐야겠다

'Algorithm > 📖Baekjoon' 카테고리의 다른 글

#11047 동전 0  (0) 2022.04.14
#11399 ATM  (0) 2022.04.14
#11404 플로이드  (0) 2022.04.12
#2839 설탕 배달  (0) 2022.04.11
#7579 앱  (0) 2022.04.10

댓글