๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/python] ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  user id์˜ ์ˆœ์—ด banned_id ์™€ ๋น„๊ต ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด list๋ฅผ ์ •๋ ฌํ•ด์„œ set์— ์ถ”๊ฐ€ from itertools import permutations def check(u, b): for i in range(len(b)): if len(u[i]) != len (b[i]): return False for j in range(len(b[i])): if b[i][j] == '*': continue elif u[i][j] != b[i][j]: return False return True def solution(user_id, banned_id): user_per_set = set([]) user_per = list(permutations(user_id, len(banned_i..
c++ vector / python list ํ•จ์ˆ˜ ์ •๋ฆฌ python์— ์‰ฝ๊ฒŒ ์ ์‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋ฉด C++์˜ ์ž๋ฃŒ๊ตฌ์กฐ ํ•จ์ˆ˜๋“ค์„ python๊ณผ ๋น„๊ตํ•ด๋ณด๋ ค ํ•œ๋‹ค ์ฒซ ๋ฒˆ์งธ๋Š” c++์˜ vector์™€ ๊ทธ์™€ ๋น„์Šทํ•œ ์šฉ๋„๋กœ ์“ฐ์ด๋Š” list๋ฅผ ๋น„๊ตํ•ด๋ณด์•˜๋‹ค c++ python list ์„ ์–ธ vector v; a = [] ์ดˆ๊ธฐ๊ฐ’ ์„ค์ • fill(v.begin(), v.end(), -1); a = [-1 for i in range(100)] ์ถ”๊ฐ€ v.push_back(5); a.append(5) ์ค‘๊ฐ„ ์š”์†Œ ์‚ญ์ œ v.erase(v.begin()+5); del a[5] ๋งจ๋’ค ์š”์†Œ ์‚ญ์ œ v.pop_back(); a.pop() ๊ธธ์ด v.size(); len(a) ์ •๋ ฌ sort(v.begin(), v.end()); a.sort() ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ v.empty(); bool(a) t..
[Algorithm] KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜ KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜ ? ์ „์ฒด ๋ฌธ์ž์—ด : ๋ฌธ์ž์—ด ์ „์ฒด ํŒจํ„ด ๋ฌธ์ž์—ด : ์ฐพ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด ์ „์ฒด ๋ฌธ์ž์—ด์—์„œ ์ผ์น˜ํ•˜๋Š” ํŒจํ„ด ๋ฌธ์ž์—ด์„ ์ฐพ์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ ํŒจํ„ด ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐ๊ฐ ์–ด๋”” ์œ„์น˜์ธ์ง€ ์ฐพ์•„์•ผ ํ•  ๋•Œ ์ ‘๋‘์‚ฌ, ์ ‘๋ฏธ์‚ฌ์˜ ๊ฐœ๋…์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต๋˜๋Š” ์—ฐ์‚ฐ์„ ์ค„์ด๊ณ  ๋งค์นญ ํ•  ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋กœ ๋น ๋ฅด๊ฒŒ ์ ํ”„ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„ O(n+m) : n = ์ „์ฒด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด, m = ํŒจํ„ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด O(n^2)์˜ ๋ฌธ์ž์—ด ํƒ์ƒ‰ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด for ( int i =0; i < ์ „์ฒด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด; i++) { // text[i] : ์ „์ฒด ๋ฌธ์ž์—ด ์ค‘ i ๋ฒˆ์งธ ๋ฌธ์ž bool flag = true for ( int j =0; j < ํŒจํ„ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด; j++ ) { // pattern[j] : ํŒจํ„ด ๋ฌธ์ž์—ด..
[์ž๋ฃŒ๊ตฌ์กฐ] Trie ํŠธ๋ผ์ด Trie๋Š” ? ์ €์žฅ๋œ ๋ฌธ์ž์—ด์„ ํšจ๊ณผ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํŠธ๋ฆฌ ๊ตฌ์กฐ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N) : N์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด prefix tree, radix tree, retrieval tree ๋“ฑ์œผ๋กœ ๋ถ€๋ฆ„ ๋‹จ์  : ๊ฑฐ๋Œ€ํ•œ ๊ณต๊ฐ„ ๋ณต์žก๋„ trie๋Š” ๋ฌธ์ž์—ด ํƒ์ƒ‰์— ๊ต‰์žฅํžˆ ์œ ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๊ฒŒ๋˜๋ฉด ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ƒ์„ฑํ•ด๊ฐ€๋ฉด์„œ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๋‹ค ์ž๋™์œผ๋กœ ์ •๋ ฌ๋œ ํšจ๊ณผ๋ฅผ ๋ณผ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ๋‹ค ์˜ˆ์‹œ root ๋…ธ๋“œ๋Š” ๊ฐ€์žฅ ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค "ALCUK" "EZ" "EZYUN" "EZYOON" 4๊ธ€์ž๋ฅผ ๋„ฃ์€ Trie ํŠธ๋ฆฌ ๋ชจ์–‘ ๊ตฌํ˜„ - ๊ฐ„๋‹จํ•œ ๊ธฐ๋ณธ ์ฝ”๋“œ #include #include #include using namespace std; const int ptr_num = 10; st..

๋ฐ˜์‘ํ˜•