https://www.acmicpc.net/problem/14002
์ ๋ช ํ DP ๋ฌธ์ ์ธ LIS ๋ฌธ์ ์๋ฆฌ์ฆ
n = int(input())
arr = list(map(int, input().split()))
dp = [[] for _ in range(n)]
for i in range(n):
dp[i].append(arr[i])
for i in range(1, n):
for j in range(i):
if arr[j] < arr[i]:
if len(dp[j]) + 1 > len(dp[i]):
dp[i] = dp[j] + [arr[i]]
answer = []
for i in range(n):
if len(dp[i]) > len(answer):
answer = dp[i]
answer.sort() # ์ฒ์์ dp์ arr์ ๊ฐ ์์๋ฅผ ๋ฃ์ด ์ด๊ธฐํ ์์ผ์คฌ๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ์ ๋ค์ ํด์ค์ผ ํจ
print(len(answer))
print(' '.join(map(str, answer)))
์ด ๋ฌธ์ ํ์ด ๊ฒ์ํด๋ณด๋ฉด ๋๋ถ๋ถ ์์ด์ ๊ธธ์ด ๋จผ์ ๊ตฌํ๊ณ ์ญ์ถ์ ํด์ ์์ด ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ํ์๋๋ฐ ๋๋ ํ๊บผ๋ฒ์ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค