์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๊ฐ๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- JS
- ์๊ณ ๋ฆฌ์ฆ
- ํ ์ดํ๋ก์ ํธ
- ํ๋ก ํธ์๋
- fe
- heapq
- ๊ตญ๋น์ง์
- ๋ชจ๊ฐ์ฝ
- Python
- node.js
- ์ฝ๋ฉ
- ๋ฐฑ์ค
- CSS
- ๋ ธ๋ง๋์ฝ๋
- mongodb
- ๊ทธ๋ฆฌ๋
- ํ๋ก์ ํธ
- ์ฝ๋ฉํ ์คํธ
- HTML
- Til
- ์ฝ๋ฉ์ ํ
- react
- KDT
- javascript
- error
- ํ์ด์ฌ
- ํฌ๋กค๋ง
- ๋๋ฆผ์ฝ๋ฉ
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (181)
๐ฑ → ๐ณ
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ( ๋์ ๊ณํ๋ฒ) ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ์ํ ์๊ฐ ํจ์จ์ฑ์ ๋น์ฝ์ ์ผ๋ก ํฅ์์ํค๋ ๋ฐฉ๋ฒ ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ(์์ ๋ฌธ์ )๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅํ์ฌ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํจ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํ์ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง ๋ฐฉ์ ํ ๋ค์ด(ํํฅ์) ๋ณดํ ์ (์ํฅ์) ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ๋ถ์ผ์์ ๋์ (dynamic)์ด๋? ์๋ฃ๊ตฌ์กฐ์์ ๋์ ํ ๋น(dynamic allocation)์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ค์ ์คํ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ์ ์๋ฏธ ๋ฐ๋ฉด ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์์ ‘๋ค์ด๋๋ฏน’์ ๋ณ ์๋ฏธ ์์ด ์ฌ์ฉ๋ ๋จ์ด ๋ค์ด๋๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ์กฐ๊ฑด ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ(Optimal Substructure) ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋ ์ ์์ผ๋ฉฐ ์์ ๋ฌธ์ ์ ๋ต์ ๋ชจ์์..
ํ์ ์๊ณ ๋ฆฌ์ฆ ์์ฐจ ํ์: ๋ฆฌ์คํธ ์์ ์๋ ํน์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์์๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ํ์ธํ๋ ๋ฐฉ๋ฒ ์ด์ง ํ์: ์ ๋ ฌ๋์ด ์๋ ๋ฆฌ์คํธ์์ ํ์ ๋ฒ์๋ฅผ ์ ๋ฐ์ฉ ์ขํ๊ฐ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ ์ด์ง ํ์์ ์์์ , ๋์ , ์ค๊ฐ์ ์ ์ด์ฉํ์ฌ ํ์ ๋ฒ์๋ฅผ ์ค์ ํจ ์ด์ง ํ์ ๋์ ์์ ์ด์ง ํ์์ ์๊ฐ ๋ณต์ก๋ ๋จ๊ณ๋ง๋ค ํ์ ๋ฒ์๋ฅผ 2๋ก ๋๋๋ ๊ฒ๊ณผ ๋์ผํ๋ฏ๋ก ์ฐ์ฐ ํ์๋ $log_2N$ ์ ๋น๋กํจ ์๋ฅผ ๋ค์ด ์ด๊ธฐ ๋ฐ์ดํฐ ๊ฐ์๊ฐ 32๊ฐ์ผ ๋, ์ด์์ ์ผ๋ก 1๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉด 16๊ฐ๊ฐ๋์ ๋ฐ์ดํฐ๋ง ๋จ์ 2๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉด 8๊ฐ๊ฐ๋์ ๋ฐ์ดํฐ๋ง ๋จ์ 3๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉด 4๊ฐ๊ฐ๋์ ๋ฐ์ดํฐ๋ง ๋จ์ ๋ค์ ๋งํด ์ด์ง ํ์์ ํ์ ๋ฒ์๋ฅผ ์ ๋ฐ์ฉ ์ค์ด๋ฉฐ, ์๊ฐ ๋ณต์ก๋๋ $O(logN)$์ ๋ณด์ฅํจ ํ์ด์ฌ ์ด์ง ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ bis..
๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ: DFS/BFS ํ์(search)์ด๋ ๋ง์ ์์ ๋ฐ์ดํฐ ์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ๋ํ์ ์ธ ๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก DFS/BFS๊ฐ ์กด์ฌ ์๋ฃ๊ตฌ์กฐ ์คํ(์ ์ ํ์ถ) ๋จผ์ ๋ค์ด ์จ ๋ฐ์ดํฐ๊ฐ ๋์ค์ ๋๊ฐ๋ ํ์์ ์๋ฃ๊ตฌ์กฐ ์์) ๋ฐ์ค ์๊ธฐ DFS method ์ ์ def dfs(graph, v, visited): visited[v] = True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] visited = [False] * 9 dfs(graph, 1, ..
์์ 1) 1์ด ๋ ๋ ๊น์ง while True: # (N==K๋ก ๋๋์ด๋จ์ด์ง๋ ์)๊ฐ ๋ ๋๊น์ง 1์ฉ ๋นผ๊ธฐ target = (n//k)*k count += (n-target) n = target if n
์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณํ๊ธฐ ๋ฌธ์ ์์ ๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ๋ ๋ด์ฉ์ ์๊ฐ์ ํ(์ํ์๊ฐ ์๊ตฌ์ฌํญ) ์๊ฐ์ ํ์ด 1์ด์ธ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ ๋, ์ผ๋ฐ์ ์ธ ๊ธฐ์ค N์ ๋ฒ์๊ฐ 500์ธ ๊ฒฝ์ฐ: ์๊ฐ ๋ณต์ก๋๊ฐ O(N^3)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ N์ ๋ฒ์๊ฐ 2,000์ธ ๊ฒฝ์ฐ: ์๊ฐ ๋ณต์ก๋๊ฐ O(N^2)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ N์ ๋ฒ์๊ฐ 100,000์ธ ๊ฒฝ์ฐ: ์๊ฐ ๋ณต์ก๋๊ฐ O(NlogN)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ N์ ๋ฒ์๊ฐ 10,000,000์ธ ๊ฒฝ์ฐ: ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ (์ผ๋ฐ์ ์ผ๋ก) 1. ์ง๋ฌธ ์ฝ๊ธฐ ๋ฐ ์ปดํจํ ์ ์ฌ๊ณ 2. ์๊ตฌ์ฌํญ(๋ณต์ก๋) ๋ถ์ 3. ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์์ด๋์ด ์ฐพ๊ธฐ 4. ์์ค์ฝ๋ ์ค๊ณ ๋ฐ ์ฝ๋ฉ ์ผ๋ฐ์ ์ผ๋ก ๋๋ถ๋ถ์ ๋ฌธ์ ์ถ์ ์๋ค์ ํต์ฌ ์์ด๋์ด๋ฅผ ์บ์นํ..
https://www.acmicpc.net/problem/18870 18870๋ฒ: ์ขํ ์์ถ ์์ง์ ์์ N๊ฐ์ ์ขํ X1, X2, ..., XN์ด ์๋ค. ์ด ์ขํ์ ์ขํ ์์ถ์ ์ ์ฉํ๋ ค๊ณ ํ๋ค. Xi๋ฅผ ์ขํ ์์ถํ ๊ฒฐ๊ณผ X'i์ ๊ฐ์ Xi > Xj๋ฅผ ๋ง์กฑํ๋ ์๋ก ๋ค๋ฅธ ์ขํ์ ๊ฐ์์ ๊ฐ์์ผ ํ๋ค. X1, X2, ..., XN์ ์ข www.acmicpc.net ๐ ๋ฌธ์ ํด์ค "Xi>Xj๋ฅผ ๋ง์กฑํ๋ ์๋ก ๋ค๋ฅธ ์ขํ์ ๊ฐ์์ ๊ฐ์์ผ๋๋ค" ๋ผ๋ ๋ป์ ์ฆ Xi๊ฐ ๋ฆฌ์คํธ ์์์์ ํฌ๊ธฐ ์์๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ค๋ ๋ง (ํฌ๊ธฐ ์์๋ 0๋ถํฐ ์์.) ์ฆ, ๋ฆฌ์คํธ์์์ ์๊ธฐ๋ณด๋ค ์์ ์ซ์์ ๊ฐ์๋ฅผ ์ธ๋ ๊ฒ์ด๋ฏ๋ก, ์์ ์ด ๋ฆฌ์คํธ ์์์์ ํฌ๊ธฐ ์์๋ฅผ ์ถ๋ ฅํ๋ฉด ๋จ ๐ ์ฝ๋ ์คํจ ์ฝ๋ (์๊ฐ ์ด๊ณผ) n = int(input())..
https://www.acmicpc.net/problem/2108 2108๋ฒ: ํต๊ณํ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋จ, N์ ํ์์ด๋ค. ๊ทธ ๋ค์ N๊ฐ์ ์ค์๋ ์ ์๋ค์ด ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ์ ์์ ์ ๋๊ฐ์ 4,000์ ๋์ง ์๋๋ค. www.acmicpc.net ์ ๋ต์ฝ๋: from collections import Counter import sys a = int(sys.stdin.readline()) b= [] for i in range(a): b.append(int(sys.stdin.readline())) b.sort() c = a//2 # ์ฐ์ ํ๊ท print(round(sum(b)/a)) # ์ค์๊ฐ print(b[c]) # ์ต๋น๊ฐ cnt = Counter(b).mo..
์ฒ์ ์์ฑํ ์ฝ๋ import sys n = int(input()) m = [] for i in range(n): m.append(int(sys.stdin.readline())) m.sort() for i in m: print(i) → ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ๋ฐ์ ์๊ฐ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด sys๋ฅผ ์ฐ๋ ๊ฑด ์๊ฒ ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ,, ๊ณต๊ฐ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ๋ ์ง ๋ชฐ๋ผ์ ์ธํฐ๋ท์ ์ฐพ์๋ดค๋ค. ์ ๋ต ์ฝ๋ import sys n = int(sys.stdin.readline()) m = [0] * 10001 for i in range(n): m[int(sys.stdin.readline())] += 1 for i in range(10001): if m[i] != 0: for j in range(m[i]): p..