일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 그래프
- 명품자바
- 백준 1253번
- 그리디
- 백준 3085번
- react
- SQL
- 백준 2512번
- 깃헙
- ubuntu
- 머신러닝과 딥러닝
- 모각코
- 백준 15787번
- 백준 18310번
- 자바
- HUFS 모각코 캠프
- 알고리즘
- 백준
- Python
- 다이나믹프로그래밍
- 백준 1987
- javascript
- 백준 1331번
- 백준 16918번
- MySQL
- 다이나믹 프로그래밍
- SWEA 15612번
- 백준 17451번
- java_programming
- AWS
Archives
- Today
- Total
차곡차곡
[codetree/python] 코드트리 - 겹치지 않게 선분 고르기 본문
코드트리 백트래킹 연습 - 겹치지 않게 선분 고르기
def calc():
if 1 not in flag:
return 0
last = -1
cnt = 0
for i in range(n):
if flag[i]:
if last == -1:
last = lines[i][1]
cnt += 1
else:
if last < lines[i][0]:
last = lines[i][1]
cnt += 1
return cnt
def including_line(now, most_cnt):
if now == n:
cnt = calc()
if most_cnt < cnt:
most_cnt = cnt
return most_cnt
for i in range(2):
flag.append(i)
most_cnt = including_line(now + 1, most_cnt)
flag.pop()
return most_cnt
n = int(input())
lines = [list(map(int, input().split())) for _ in range(n)]
lines.sort()
flag = [] # 선 포함 시키는지 안 시키는지 표시
print(including_line(0, 0))
'CS > Algorithm' 카테고리의 다른 글
[BOJ/Python, Java] 백준 14606번 - 피자 (Small) (0) | 2023.07.26 |
---|---|
[codetree/python] 코드트리 - 특정 조건에 맞게 k개 중에 1개를 n번 뽑기 (0) | 2023.05.17 |
[codetree/python] 코드트리 - 강력한 폭발 (0) | 2023.05.16 |
[codetree/python] 코드트리 - 아름다운 수 (0) | 2023.05.14 |
[codetree/python] 코드트리 - k개 중에 1개를 n번 뽑기 (0) | 2023.05.14 |
Comments