[๋ฐฑ์ค€/C++] 11053๋ฒˆ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด

2022. 7. 20. 15:29ยท๋ฐฑ์ค€/C++

๋ฐฑ์ค€

 

11054๋ฒˆ ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด


๐Ÿค”๋ฌธ์ œ ์ดํ•ด

i+1๋ฒˆ์งธ ์ˆ˜๊ฐ€ i๋ฒˆ์งธ ์ˆ˜๋ณด๋‹ค ํฐ ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘์—์„œ ๊ฐ€์žฅ ๊ธด ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.


๐Ÿ’ก์ฒซ๋ฒˆ์งธ ์•„์ด๋””์–ด

์ฒ˜์Œ์—” ๋ถ€๋ฅดํŠธ ํฌ์Šค๊ฐ€ ์ƒ๊ฐ๋‚ฌ๋‹ค. ๊ทธ๋ƒฅ ๋ˆˆ์œผ๋กœ ๊ณ„์‚ฐํ•ด๋ด๋„ ๋ชจ๋“  ์กฐํ•ฉ์„ ์ƒ๊ฐํ•ด๋ด์•ผ ํ’€๋ฆฐ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทผ๋ฐ ์ €๊ฑธ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋‹ค ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด 1์ดˆ๋Š” ๊ฑฐ๋œฌํžˆ ๋„˜๊ธฐ๊ฒŒ ๋œ๋‹ค...

 

๐Ÿ’ก๋‘๋ฒˆ์งธ ์•„์ด๋””์–ด

๋ฉ˜ํ† ๋‹˜์—๊ฒŒ LCS(longest increasing subsequence)๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ์ „์ˆ˜๋ฐ›์•˜๋‹ค!

ํ’€์ด์— ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

 

๐Ÿ”ฅํ’€์ด๐Ÿ”ฅ

์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์—ด์€ arr์— ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•ด๋†“๊ณ  dp ๋ฐฐ์—ด์„ arr๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค.

์ˆ˜์—ด์˜ ๋‘๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ n๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ธ๋ฑ์Šค i์™€ ์ฒซ๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ i๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ธ๋ฑ์Šค j๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž.

๋งŒ์•ฝ arr[j]๊ฐ€ arr[i]๋ณด๋‹ค ์ž‘๋‹ค๋ฉด, ์ฆ‰ ์ฆ๊ฐ€ํ•œ๋‹ค๋ฉด dp[i]์™€ dp[j] + 1 ์ค‘์—์„œ ๋” ํฐ ๊ฐ’์„ dp[i]์— ๋„ฃ์–ด์ค€๋‹ค.

 

=> dp[i]๋Š” i๋ฒˆ์งธ ์ˆ˜๋ฅผ ์ˆ˜์—ด์˜ ๋งˆ์ง€๋ง‰ ์ˆ˜๋กœ ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜์—ด์„ ์˜๋ฏธ


#include <iostream>
#include <cmath>

using namespace std;
int n;
int arr[1001];
int dp[1001];

int main() {
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(false);
    cin >> n;

    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    for(int i=0; i < n; i++){
        dp[i] = 1;
    }

    for (int i = 1; i < n; i++) {
        for (int j = 0; j <= i; j++) {
            if (arr[j] < arr[i]) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
    }

    int ans = dp[0];
    for (int i = 1; i < n; i++) {
        if (ans < dp[i]) ans = dp[i];
    }
    cout << ans;


}
728x90

'๋ฐฑ์ค€ > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€/C++] 13398๋ฒˆ ์—ฐ์†ํ•ฉ 2  (0) 2022.07.20
[๋ฐฑ์ค€/C++] 11054๋ฒˆ ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด  (0) 2022.07.20
[๋ฐฑ์ค€/C++] 5021๋ฒˆ ์™•์œ„๊ณ„์Šน  (0) 2022.07.18
[๋ฐฑ์ค€/C++] 11057๋ฒˆ ์˜ค๋ฅด๋ง‰ ์ˆ˜  (0) 2022.07.18
[๋ฐฑ์ค€/C++] 1939๋ฒˆ ์ค‘๋Ÿ‰์ œํ•œ  (0) 2022.07.18
'๋ฐฑ์ค€/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€/C++] 13398๋ฒˆ ์—ฐ์†ํ•ฉ 2
  • [๋ฐฑ์ค€/C++] 11054๋ฒˆ ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด
  • [๋ฐฑ์ค€/C++] 5021๋ฒˆ ์™•์œ„๊ณ„์Šน
  • [๋ฐฑ์ค€/C++] 11057๋ฒˆ ์˜ค๋ฅด๋ง‰ ์ˆ˜
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (107)
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • ๊ณต๋ถ€ (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
        • ๊ธฐํƒ€ (0)
      • ๋ฐฑ์ค€ (39)
        • C++ (39)
        • Java (0)
      • ๋„์„œ (39)
        • ์ž๋ฐ”์˜ ์‹  (32)
        • ์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด (7)
      • ๊ธฐํƒ€ (4)
        • Blog (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    aws
    ์Šคํ”„๋ง ์ž…๋ฌธ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ๋ฌธ์ œํ’€์ด
    EC2
    ๊ฐ์ฒด์ง€ํ–ฅ
    ์œ„์ƒ์ •๋ ฌ
    DP
    ์ž๋ฐ”์˜ ์‹ 
    C++
    Spring
    GodOfJava
    ์Šคํ„ฐ๋””
    1์ผ1๋ฐฑ์ค€
    ์ž๋ฐ”
    ๋ฐฑ์ค€
    Java
    boj
    ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
yulee_to
[๋ฐฑ์ค€/C++] 11053๋ฒˆ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”