[Java] BOJ 10942 - ํฐ๋ฆฐ๋๋กฌ?Problem Solving/Baekjoon Online Judge (BOJ)2025. 5. 8. 15:12
Table of Contents

01. ๐ ๋ฌธ์ ํ์
N: ์์ด์ ํฌ๊ธฐ $(1 \leq N \leq 2,000)$
(๊ฐ ์์๋ 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์)
M: ์ง๋ฌธ์ ๊ฐ์ $(1 \leq M \leq 1,000,000)$
S, E: ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ๋จํ ๋ถ๋ถ ์์ด์ ๋ฒ์
01-1. ์๊ณ ๋ฆฌ์ฆ ์ ํ & ์๊ฐ ๋ณต์ก๋
- ๊ฐ ๋ฒ์์ ๋ํ์ฌ ์ ๋์ ์ ์ธํ ๋ถ๋ถ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ๋จํ๊ณ ์ ๋์ ๋น๊ตํ๋ ๊ฒ์ผ๋ก ํฐ๋ฆฐ๋๋กฌ์ธ์ง ์ ์ ์์
-> ๋ฐ๋ผ์, ์ด์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๊ฒฐ๊ณผ์ ์ด์ฉํ๋ฏ๋ก DP๋ก ํ ์ ์์ - ์์๋ก S=1 E=5๊ฐ ์ฃผ์ด์ง๊ณ S์ ์์์ E์ ์์๊ฐ ๊ฐ์ ๋ S+1, E-1์ ๋ถ๋ถ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ด๋ฉด S, E์ ๋ถ๋ถ์์ด ๋ํ ํฐ๋ฆฐ๋๋กฌ์ด๋ค.
- ์ด์ค for๋ฌธ์ ํตํด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ ์ ์์ผ๋ฏ๋ก, ์๊ฐ ๋ณต์ก๋ $O(N^2)$์ ์ง๋ฐฐ
02. ๐ ์ฝ๋ ์ค๊ณํ๊ธฐ
- ์์ด์ ๋ํด ์ ๋ ฅํ๊ณ ๋ถ๋ถ์์ด์ ํฌ๊ธฐ๊ฐ 1์ผ๋๋ ํญ์ ํฐ๋ฆฐ๋๋กฌ์ด๋ฏ๋ก ์ํ๋ฅผ ์ ์ฅ
- ๋์ ์ ๊ณ ์ ์ํค๊ณ ์์์ ์ ์ด๋์ํค๋ ๊ฒ์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ์ฌ ๋ฉ๋ชจ์ด์ ์ด์
- ์์์ ๊ณผ ๋์ ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ ํญ์ ํฐ๋ฆฐ๋๋กฌ์ด๋ฏ๋ก continue
- ์์์ ๊ณผ ๋์ ์ฌ์ด์ ์๋ ๋ถ๋ถ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ๋จํ๊ณ , ์๋๋ผ๋ฉด ํฐ๋ฆฐ๋๋กฌ์ด ์๋๋ฏ๋ก continue
- ์ฌ์ด์ ๋ถ๋ถ ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ด๋ผ๋ฉด ์์์ ๊ณผ ๋์ ์ ์์๋ฅผ ๋น๊ตํด ๊ฐ๋ค๋ฉด, ํฐ๋ฆฐ๋๋กฌ์ด ๋ง์
03. ๐ ๏ธ ์๋๋ณ ์์
1ํ์ฐจ
04. ๐๏ธ ์ ๋ต ์ฝ๋
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static StringTokenizer st;
public static void main(String[] args) throws IOException {
int N = Integer.valueOf(br.readLine());
int arr[] = new int[N+1];
int dp[][] = new int[N+1][N+1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <= N; i++){
arr[i] = Integer.valueOf(st.nextToken());
dp[i][i] = 1;
}
for(int i = 1; i <= N; i++){
for(int j = 1; j <= i; j++){
if(j == i) continue;
if((j+1) <= (i-1) && dp[j+1][i-1] == 0) continue;
dp[j][i] = (arr[j] == arr[i]) ? 1 : 0;
}
}
int S, E;
int M = Integer.valueOf(br.readLine());
while(M-- > 0){
st = new StringTokenizer(br.readLine());
S = Integer.valueOf(st.nextToken());
E = Integer.valueOf(st.nextToken());
bw.write(dp[S][E] + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
'Problem Solving > Baekjoon Online Judge (BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Java] BOJ 1202 - ๋ณด์ ๋๋ (0) | 2025.05.06 |
|---|---|
| [Java] BOJ 2263 - ํธ๋ฆฌ์ ์ํ (0) | 2025.05.03 |
| [Java] BOJ 11049 - ํ๋ ฌ ๊ณฑ์ ์์ (0) | 2025.05.01 |
| [Java] BOJ 1005 - ACM Craft (0) | 2025.04.29 |
| [Java] BOJ 2842 - ์ง๋ฐฐ์ ํ์๋ (0) | 2025.04.27 |
@ONE_ :: ์ ํธ์
์๋ชป๋ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋ง์ํด์ฃผ์ธ์!