https://softeer.ai/practice/result.do?eventIdx=1&submissionSn=SW_PRBL_SBMS_187431&psProblemId=390
https://softeer.ai/practice/result.do?eventIdx=1&psProblemId=390&submissionSn=SW_PRBL_SBMS_187431
softeer.ai
1. ๋ฌธ์
๋์ ๊ฐ์ N์ด ์ฃผ์ด์ง๊ณ , ๋์ด๊ฐ ์ ์ ๋์ ๋์ ๋ฐ์ผ๋ฉด์ ์ง๋๊ฐ๊ณ ์ถ์ ๋
๋์ ๋์ด๊ฐ ์์ชฝ๋ถํฐ ๋์ชฝ๊น์ง ์ฃผ์ด์ก์ ๋ ๋ฐ์ ์ ์๋ ๋์ ์ต๋ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
2. ํ์ด
์ต์ฅ์ฆ๊ฐ๋ถ๋ถ์์ด ๋ฌธ์ ์ด๋ค. dp๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์จ์ ์ธ ๋ฌธ์ ์ด๋ค.
arr[]์ ์ ๋ ฅ ๊ฐ์ ๋ฃ๊ณ dp[]์ ๊ฐ๊ฐ 1์ ๋ฃ๋๋ค.
for๋ฌธ์ 0๋ถํฐ N๊น์ง ๋๋ฆฌ๊ณ ๊ทธ ์์ for๋ฌธ์ 0๋ถํฐ i๊น์ง(๋ฏธํฌํจ) ๋๋ ค์
arr[i] > arr[j]์ผ ๋ dp๊ฐ ์ต๋๊ฐ ๋ ์ ์๋ ๊ฐ์ ์ฐพ๊ณ ํด๋น ๊ฐ์ dp[i]์ ๋ฃ์ด์ค๋ค.
์ฆ, dp[i] = Math.max(dp[i], dp[j]+1);์ ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค.
๋ด๋ถ for๋ฌธ์ด ๋๋ฌ์ ๋์ ํ์ ๋ dp[i] ๊ฐ๊ณผ ans๋ฅผ ๋น๊ตํ์ฌ ๊ฐ์ฅ ํฐ dp[] ๊ฐ์ด ์ต๋ ๊ธธ์ด(๋ฐ์ ์ ์๋ ๋ ์ต๋ ๊ฐ์)๊ฐ ๋๋ค.
3. ์ฝ๋
import java.util.*;
import java.io.*;
public class Main
{
static int N, ans;
static int[] arr, dp;
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
arr = new int[N];
dp = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i=0; i<N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
dp[i] = 1;
}
solution();
System.out.println(ans);
}
static void solution() {
for (int i=0; i<N; i++) {
for (int j=0; j<i; j++) {
if (arr[i] > arr[j]) {
dp[i] = Math.max(dp[i], dp[j]+1);
}
}
ans = Math.max(ans, dp[i]);
}
}
}
4. ์ฌ๋ด
์ต์ฅ์ฆ๊ฐ๋ถ๋ถ์์ด dp ํ์ด๋ ํํ์ง ์์ ์ ํ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ฌ๋ฐ๋ ๋ฌธ์ ์๋ค.
'Algorithm > Softeer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Softeer] ๊ธ๊ณ ํธ์ด - Java (0) | 2023.06.13 |
---|---|
[Softeer] ์ ๊ดํ - Java (0) | 2023.05.11 |
[Softeer] ๋น๋ฐ ๋ฉ๋ด - Java (0) | 2023.05.10 |
[Softeer] ๋๊ณ ํ ์คํธ ์์ ์์ธก - Java (0) | 2023.05.07 |
[Softeer] ์ฑ์ ํ๊ท - Java (0) | 2023.05.06 |