diff --git a/백준/11722.py b/백준/11722.py new file mode 100644 index 0000000..f2d2018 --- /dev/null +++ b/백준/11722.py @@ -0,0 +1,15 @@ +import sys + +input = sys.stdin.readline + +n = int(input()) +lst = list(map(int, input().split())) + +dp = [1 for _ in range(n)] + +for i in range(n-1, -1 ,-1): + for j in range(n-1, i-1, -1): + if lst[i] > lst[j]: + dp[i] = max(dp[i], dp[j]+1) + +print(max(dp)) \ No newline at end of file diff --git a/백준/11724.py b/백준/11724.py new file mode 100644 index 0000000..93af0c8 --- /dev/null +++ b/백준/11724.py @@ -0,0 +1,30 @@ +import sys +sys.setrecursionlimit(10**6) + +input = sys.stdin.readline + +N, M = map(int, input().split()) +A = list([] for i in range(N+1)) +tot=0 + +visited = [0] * (N+1) + +for _ in range(M): + s, e = map(int, input().split()) + A[s].append(e) + A[e].append(s) + + +def DFS(v): + visited[v] = True + for i in A[v]: + if(visited[i]==False): + DFS(i) + + +for i in range(1,N+1): + if(visited[i]==False): + tot+=1 + DFS(i) + +print(tot) \ No newline at end of file diff --git a/백준/12015.py b/백준/12015.py new file mode 100644 index 0000000..ffb551c --- /dev/null +++ b/백준/12015.py @@ -0,0 +1,18 @@ +from bisect import bisect_left +import sys + +input = sys.stdin.readline + +n = int(input()) +lst = list(map(int, input().split())) +stack = [] + +for i in lst: + if not stack or stack[-1] < i: + stack.append(i) + else: + a = bisect_left(stack, i) + stack[a] = i + +print(len(stack)) +print(*stack) \ No newline at end of file diff --git a/백준/13251.py b/백준/13251.py new file mode 100644 index 0000000..217d46c --- /dev/null +++ b/백준/13251.py @@ -0,0 +1,16 @@ +from itertools import combinations +import sys +from math import factorial +from math import comb + +input = sys.stdin.readline + +N = int(input()) +a = list(map(int, input().split())) +k = int(input()) +total = sum(a) +arrtot = 0 +for i in a: + arrtot += comb(i, k) + +print(arrtot / (comb(total, k))) diff --git a/백준/14002.py b/백준/14002.py new file mode 100644 index 0000000..dd567b1 --- /dev/null +++ b/백준/14002.py @@ -0,0 +1,38 @@ +import sys +from bisect import bisect_left + +input = sys.stdin.readline + +n = int(input()) +lst = list(map(int, input().split())) + +stack = [] +stack_idx = [] + +dp_table = [1 for i in range(n+1)] +prev = [-1 for i in range(n+1)] + +for i in range(n): + if not stack or stack[-1] 0: + prev[i] = stack_idx[k-1] + stack_idx[k] = i + +k = len(stack) +idx = stack_idx[-1] +result = [] +while idx!=-1: + result.append(lst[idx]) + idx = prev[idx] + +result.reverse() + +print(k) +print(*result) \ No newline at end of file