🧩 Algorithm/[BOJ] Silver

BOJ 11722번 : κ°€μž₯ κΈ΄ κ°μ†Œν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄ (Python/Silver 2)

devCloud 2023. 10. 26. 23:30
728x90
 

11722번: κ°€μž₯ κΈ΄ κ°μ†Œν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄

μˆ˜μ—΄ Aκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, κ°€μž₯ κΈ΄ κ°μ†Œν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 예λ₯Ό λ“€μ–΄, μˆ˜μ—΄ A = {10, 30, 10, 20, 20, 10} 인 κ²½μš°μ— κ°€μž₯ κΈ΄ κ°μ†Œν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ€ A = {10, 30, 10, 20, 20, 10} 

www.acmicpc.net


μ„€λͺ…

λΆ€λΆ„ μˆ˜μ—΄μ˜ μ΅œλŒ€ 길이λ₯Ό ꡬ해야 ν•˜λŠ” λ¬Έμ œμ΄λ‹€. λΆ€λΆ„ μˆ˜μ—΄μ΄λž€ μ£Όμ–΄μ§„ μˆ˜μ—΄μ˜ 일뢀 항을 μ›λž˜ μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄ν•˜μ—¬ 얻을 수 μžˆλŠ” μˆ˜μ—΄μ΄λ‹€. μ‰½κ²Œ λ§ν•΄μ„œ 이전 μˆ˜λ³΄λ‹€ μž‘μœΌλ©΄ μˆ˜μ—΄μ΄ 이루어진닀. ν”νžˆ μˆ˜ν•™μ—μ„œ λ³΄μ•˜λ˜ 두 ν•­μ˜ 차이가 μΌμ •ν•œ λ“±μ°¨μˆ˜μ—΄μ„ λ§ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€. 

 

예λ₯Ό λ“€μ–΄, A : { 10, 30, 10, 20, 20, 10 } μ΄λΌλŠ” μˆ˜μ—΄μ΄ μžˆμ„ λ•Œ, λΆ€λΆ„ μˆ˜μ—΄μ€ A : { 10, 30, 10, 20, 20, 10 } 이고, μ΅œλŒ€ κΈΈμ΄λŠ” 3이닀.

 

풀이

κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄ λ¬Έμ œμ™€ 같은 λ¬Έμ œμ΄λ‹€.

풀이 ➜ https://dev-cloud.tistory.com/198

 

λ°˜λ³΅λ¬Έμ„ λŒλ €μ£Όλ©΄μ„œ ν˜„μž¬ κ°’(i)이 이전 κ°’(j)보닀 μž‘μœΌλ©΄, dpμ—μ„œμ˜ ν˜„μž¬ μœ„μΉ˜(i)와 이전 μœ„μΉ˜(j)μ—μ„œ +1을 ν•΄μ€€ 카운트 κ°’κ³Ό λΉ„κ΅ν•˜μ—¬ 더 큰 카운트 값을 ν˜„μž¬ μœ„μΉ˜(i)에 μ €μž₯ν•΄μ€€λ‹€.

μ΄λ ‡κ²Œ ν•˜λ©΄ μ§€κΈˆκ» 카운트 ν–ˆλ˜ κ°’ 쀑 큰 값을 μ €μž₯ν•˜λ©΄μ„œ μˆ˜μ—΄μ˜ μ΅œλŒ“κ°’μ„ μ•Œ 수 μžˆλŠ” 것이닀.

μ΅œμ’…μœΌλ‘œ κ²°κ³Όλ₯Ό 좜λ ₯ν•  λ•Œ dp에 μ €μž₯λ˜μ–΄ μžˆλŠ” κ°’μ—μ„œ μ΅œλŒ“κ°’μ„ 좜λ ₯ν•œλ‹€.

 

Solution

#22:20 - 22:50

import sys
input = sys.stdin.readline

N = int(input())
dp = [1]*N
num = list(map(int, input().split()))

for i in range(N):
    for j in range(i):
        if num[i] < num[j]:
            dp[i] = max(dp[i], dp[j]+1)
print(max(dp))

πŸ‘©‍πŸ’» νšŒκ³ 

이번 λ¬Έμ œμ—μ„œλŠ”, μž‘μ€ 수λ₯Ό μ°Ύμ•„μ„œ 카운트 λ¦¬μŠ€νŠΈμ— ν˜„μž¬ μΈλ±μŠ€μ™€ 이전 인덱슀 쀑 μ΅œλŒ“κ°’μ„ ν˜„μž¬ μΈλ±μŠ€μ— λ‹€μ‹œ μ €μž₯ν•˜λŠ” λ°©μ‹μœΌλ‘œ ν’€μ—ˆλ‹€. 

 

κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄ 문제λ₯Ό μ΅œκ·Όμ— ν’€μ—ˆλŠ”λ°λ„ ν•œλ²ˆμ— κ΅¬ν˜„ν•˜μ§€ λͺ»ν–ˆλ‹€. 아직 dp 문제λ₯Ό μ–΄λ–»κ²Œ ν’€μ–΄μ•Ό ν• μ§€ 감이 μž‘νžˆμ§€ μ•Šμ€ 것 κ°™λ‹€. 

728x90