728x90
반응형
문제 링크
https://www.acmicpc.net/problem/2565
정답 코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import sys
def lis(arr, n):
rst = [1] * n
for i in range(1, n):
for j in range(i):
if arr[j] < arr[i]:
rst[i] = max(rst[i], rst[j] + 1)
return max(rst)
def solve():
n = int(sys.stdin.readline().rstrip())
arr = []
for _ in range(n):
a, b = map(int, sys.stdin.readline().rstrip().split())
arr.append((a, b))
arr.sort(key = lambda x: x[0])
l = []
for a, b in arr:
l.append(b)
print(n - lis(l, n))
solve()
|
cs |
이 문제는 LIS(Longest Increasing Subsequence) 대표 예제라고 볼 수 있습니다.
LIS 문제 풀이를 미리 알고 있지 않다면 처음 보고 바로 풀어내기는 매우 어려운 문제입니다.
LIS 문제 풀이의 경우 그 내용이 어렵지 않고 짧아서 아래 풀이 영상에 포함하였습니다.
오해가 없어야 할 내용이 하나 있는데요.
"풀이"가 쉬운 것과 "풀이를 생각해내는 것"이 쉬운 것은 서로 다릅니다.
LIS 풀이는 분명 그리 어렵지 않고 직관적이지만, 이것을 생각해내는 것은 쉽지 않습니다.
(생각해내기도 쉬웠다면 이렇게 이름이 붙지도 않았을 것입니다)
어렵게 느껴지는 것이 당연하므로 너무 절망하지 않아도 괜찮습니다.
728x90
초등학교 때 세 자릿수 곱셈 처음 배웠을 때를 생각해봅시다.
선생님이 하는 설명만 한 번 듣고 바로 쉽다고 생각한 사람은 아무도 없습니다.
기억은 잘 안 나지만 백번 정도 반복했더니 익숙해지지 않았나요?
코딩테스트 공부도 수학 공부와 유사합니다. 지속적인 반복을 통하여 익숙해져야 합니다.
풀이는 아래 영상을 참고 바랍니다.
https://www.youtube.com/watch?v=wn2dyWt9ml0
저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)
728x90
반응형
'백준(BOJ) 문제 풀이' 카테고리의 다른 글
백준 1654번 문제(랜선 자르기) 파이썬(Python) 풀이 [로밍맨] (0) | 2022.02.15 |
---|---|
백준 2579번 문제(계단 오르기) 파이썬(Python) 풀이 [로밍맨] (2) | 2022.01.27 |
백준 10844번 문제(쉬운 계단 수) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.12.28 |
백준 1520번 문제(내리막길) 파이썬(Python) 풀이 [로밍맨] (8) | 2021.10.17 |
백준 17137번 문제(사탕 놀이) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.10.01 |