ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/๋ฐฑ์ค
๋ฐฑ์ค: 14002 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด 4
dirmathfl 2020. 7. 1. 22:30728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ด์ ์ ๋ค๋ฃจ์๋ 11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ํ์ด์์ ๊ฐ ์์๋ค๋ง ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ์ด๋ ๋ฉ๋ชจ์ด์ ์ด์ ์ ํตํด ์์ด์ ๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์์ ์ ์ค ์์์๊ฐ ์ผ๋งํผ ์๋์ง ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๋
from sys import stdin
if __name__ == '__main__':
n = int(stdin.readline())
nums = list(map(int, stdin.readline().split()))
# ์๊ธฐ์์ ์ ํฌํจํ๋ฏ๋ก 1๋ก ์ด๊ธฐํ
answer = [1] * n
for i in range(1, n):
for j in range(i):
if nums[j] < nums[i]:
answer[i] = max(answer[i], answer[j] + 1)
max_len = max(answer)
print(max_len)
# ์ถ๊ฐ ๋ ๋ถ๋ถ
ret = []
for i, length in enumerate(answer[::-1]):
if length == max_len:
ret.append(nums[n - i - 1])
max_len -= 1
print(*ret[::-1])
์ฆ๊ฐํ๋ ์ต๋ ์์ด์ด ๋๋ ์์ ๋ถํฐ, ๊ธธ์ด๋ฅผ 1์ฉ ๊ฐ์ ์์ผ๊ฐ๋ฉฐ ์ฆ๊ฐํ๋ ์์ด์ ๊ฐ์ ์ฐพ์ ์ ์๋ค. ๋ค์์ ๋ถํฐ ๋ฆฌ์คํธ์ ๊ฐ์ ๊ธฐ๋กํ๊ฒ ๋๋ฏ๋ก ์ถ๋ ฅ ํ ๋๋ ๋ฐ์ ์์ผ์ฃผ์ด์ผ ํ๋ค.
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1699 ์ ๊ณฑ์์ ํฉ (0) | 2020.07.01 |
---|---|
๋ฐฑ์ค: 1912 ์ฐ์ํฉ (0) | 2020.07.01 |
๋ฐฑ์ค: 11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (0) | 2020.06.30 |
๋ฐฑ์ค: 2193 ์ด์น์ (0) | 2020.06.30 |
๋ฐฑ์ค: 10844 ์ฌ์ด ๊ณ๋จ ์ (0) | 2020.06.30 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ