From 5d9e62105560946b339c5522952353c5a6df3d7a Mon Sep 17 00:00:00 2001 From: SUMIN Date: Sat, 11 Apr 2026 11:57:13 +0900 Subject: [PATCH] =?UTF-8?q?Upload=20files=20to=20"=EB=B0=B1=EC=A4=80"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 백준/11722.py | 15 +++++++++++++++ 백준/11724.py | 30 ++++++++++++++++++++++++++++++ 백준/12015.py | 18 ++++++++++++++++++ 백준/13251.py | 16 ++++++++++++++++ 백준/14002.py | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+) create mode 100644 백준/11722.py create mode 100644 백준/11724.py create mode 100644 백준/12015.py create mode 100644 백준/13251.py create mode 100644 백준/14002.py 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