์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ํ๋ก์ ํธ
- node.js
- Til
- JS
- Python
- ํฌ๋กค๋ง
- ํ์ด์ฌ
- ๋๋ฆผ์ฝ๋ฉ
- CSS
- ๋ ธ๋ง๋์ฝ๋
- ์ฝ๋ฉ์ ํ
- ํ๋ก ํธ์๋
- heapq
- react
- javascript
- ๊ฐ๋ฐ
- ๋ชจ๊ฐ์ฝ
- fe
- ์ฝ๋ฉํ ์คํธ
- ๊ทธ๋ฆฌ๋
- mongodb
- ์๊ณ ๋ฆฌ์ฆ
- KDT
- ๊ตญ๋น์ง์
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ ์ดํ๋ก์ ํธ
- ๋ฐฑ์ค
- HTML
- error
- ์ฝ๋ฉ
- Today
- Total
๋ชฉ๋กAlgorithms (80)
๐ฑ → ๐ณ
https://www.acmicpc.net/problem/9012 9012๋ฒ: ๊ดํธ ๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ www.acmicpc.net ์ค๊ณ ๋ฐฉ๋ฒ ๋์ ๋ฐฉ๋ฒ ps๊ฐ ์ฃผ์ด์ก์ ๋ “(”๋ฉด stack์ ๋ฃ๊ณ “)”๋ฉด stack์์ ๋นผ์ฃผ์์ “)”์ธ๋ฐ stack์์ ๋บ ๊ฒ ์์ผ๋ฉด vps๊ฐ ์๋๊ฑฐ๊ณ , ps๋ฅผ ๋ชจ๋ ๋๊ณ ๋์๋ (๊ฐ ๋จ์์์ด๋ vps๊ฐ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ๊ผญ stack์ ์ด์ฉํ์ง ์๋๋ผ๋ sum = 0 ์ด๋ผ๊ณ ์ ์ธ ํ์ฌ ๊ตฌํํ ์ ์์ “(”๋ฉด sum +=1, “)” ์ด๋ฉด sum -=1 ์ด๋ฐ ์์ผ..
https://www.acmicpc.net/problem/9093 9093๋ฒ: ๋จ์ด ๋ค์ง๊ธฐ ์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๋ฌธ์ฅ์ด ํ๋ ์ฃผ์ด์ง๋ค. ๋จ์ด์ ๊ธธ์ด๋ ์ต๋ 20, ๋ฌธ์ฅ์ ๊ธธ์ด๋ ์ต๋ 1000์ด๋ค. ๋จ์ด์ ๋จ์ด ์ฌ์ด์๋ www.acmicpc.net stack ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ: N=int(input()) for i in range(N): string=input() string+=" " stack=[] for j in string: if j!=" ": stack.append(j) else: while stack: print(stack.pop(), end='') print(' ', end='') - j ๊ฐ์ด ๊ณต๋ฐฑ์ด ์๋ ๋๋ s..
https://www.acmicpc.net/problem/10828 10828๋ฒ: ์คํ ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง www.acmicpc.net stack class๋ฅผ ์ ์ํ์ฌ stack์ ๊ธฐ๋ฅ/๋ช ๋ น์ ๊ตฌํํจ sys๋ฅผ ์ฐ์ง ์์ผ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ์ import sys๋ก ์๊ฐ์ด๊ณผ ํด๊ฒฐ ์ ๋ต์ฝ๋: import sys input = sys.stdin.readline class Stack: def __init__(self): self.data=[] def empty(self): if len(self.data) == 0: retur..
https://www.acmicpc.net/problem/11729 11729๋ฒ: ํ๋ ธ์ด ํ ์ด๋ ์์ ์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก www.acmicpc.net ์ ๋ต: def hanoi(n,a,b,c): if n==1: print(a,c) else: hanoi(n-1,a,c,b) print(a,c) hanoi(n-1,b,a,c) n=int(input()) print(2**n-1) # ์ด๋ ํ์ hanoi(n,1,2,3) ํ์ด: ๋จผ์ n-1๊ฐ๋ฅผ C๋ฅผ ์ด์ฉํด์ B๋ก ์ฎ๊ธฐ๊ณ A์ ๋จ์ ํ๋๋ ์ฝ๊ฒ C๋ก ์ฎ๊ธธ ์ ์์ B์ ์๋ n-1๊ฐ๋ฅผ A๋ฅผ ์ด์ฉ..
https://www.acmicpc.net/problem/25501 25501๋ฒ: ์ฌ๊ท์ ๊ท์ฌ ๊ฐ ํ ์คํธ์ผ์ด์ค๋ง๋ค, isPalindrome ํจ์์ ๋ฐํ๊ฐ๊ณผ recursion ํจ์์ ํธ์ถ ํ์๋ฅผ ํ ์ค์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์ ๋ต์ฝ๋ def recursion(s, l, r): global cnt cnt += 1 if(l >= r): return 1 elif(s[l] != s[r]): return 0 else: return recursion(s, l+1, r-1) def isPalindrome(s): return recursion(s, 0, len(s)-1) for _ in range(int(input())): cnt = 0 print(isPalindrome(input()..
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ( ๋์ ๊ณํ๋ฒ) ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ์ํ ์๊ฐ ํจ์จ์ฑ์ ๋น์ฝ์ ์ผ๋ก ํฅ์์ํค๋ ๋ฐฉ๋ฒ ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ(์์ ๋ฌธ์ )๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅํ์ฌ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํจ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํ์ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง ๋ฐฉ์ ํ ๋ค์ด(ํํฅ์) ๋ณดํ ์ (์ํฅ์) ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ๋ถ์ผ์์ ๋์ (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, ..