📢 공지합니다
이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
static int N;
static int[] num;
static int result;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for (int test = 1; test <= T; test++) {
N = Integer.parseInt(br.readLine());
num = new int[N];
st =new StringTokenizer(br.readLine());
for(int i=0; i<N; i++){
num[i] = Integer.parseInt(st.nextToken());
}
result=1;
solution();
System.out.println("#"+test+" "+result);
}
}
private static void solution() {
int [] dp =new int[N];
dp[0]=1;
for(int i=1; i<N; i++){
dp[i]=1;
for(int j=0; j<i; j++){
if(num[j] < num[i] && dp[i] <=dp[j]){
dp[i] =dp[j] +1;
}
}
result = Math.max(result, dp[i]);
}
}
}
와 문제 이해가 너무 안갔던 문제였다...
DP를 활용해서 조건식을 구하면서 푸는 간단한 문제이다!! LIS 문제!
아래는 LCS 문제 참고!
https://balhae.tistory.com/255
[백준 9251번] LCS
https://www.acmicpc.net/problem/9251 package bra;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Bra9251 { public static void main(String[] args) throws IOException
balhae.tistory.com
[SWEA 4615번] 재미있는 오셀로 게임 (0) | 2025.05.09 |
---|---|
[SWEA 2814번] 최장경로 (0) | 2025.05.08 |
[SWEA 1289번] 원재의 메모리 복구하기 (0) | 2025.05.06 |
[SWEA 1244번] 최대 상금 (0) | 2025.05.05 |
[SWEA 2817번] 부분 수열의 합 (0) | 2025.05.04 |