[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ๋ผ๋ฉด๊ณต์žฅ (๋ฌธ์ œ ํ’€์ด, ์ฝ”๋“œ)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 7. 31. 12:49

๋ผ๋ฉด๊ณต์žฅ https://programmers.co.kr/learn/courses/30/lessons/42629# ์ฝ”๋“œ #include #include #include using namespace std; vector node; int solution(int stock, vector dates, vector supplies, int k) { int answer = 0; int day = stock; int size = dates.size(); for (int i = 0; i < size; i++) { node.push_back(make_pair(dates[i], supplies[i])); } while (day < k) { int idx = 0; int max_idx = 0; while (idx < nod..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ํž™
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 28. 14:21

ํž™ ์šฉ๋„ ๊ตฌํ˜„ ์ข…๋ฅ˜ ์—ฐ์‚ฐ ์ •๋ ฌ ํž™ ํž™์€ ์ถ”์ƒ์  ์ž๋ฃŒํ˜•์ธ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. partial-ordering (๋ถ€๋ถ„ ์ •๋ ฌ)์„ ๋งŒ์กฑํ•˜๋Š” left-complete binary tree (์ขŒ์ธก ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ) ์ด๋‹ค. ๋ถ€๋ถ„ ์ •๋ ฌ์„ ๋งŒ์กฑํ•œ๋‹ค๋Š” ๋ง์€ '๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹๋…ธ๋“œ' ๊ฐ„์—๋Š” ํŠน์ • ๋Œ€์†Œ๊ด€๊ณ„ ์„ฑ๋ฆฝํ•˜์ง€๋งŒ, 'ํ˜•์ œ๋…ธ๋“œ'๊ฐ„์—๋Š” ํ•ด๋‹น ๋Œ€์†Œ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ๋Š” ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ํž™ ํŠธ๋ฆฌ์—์„œ๋Š” ํ—ˆ์šฉํ•œ๋‹ค. ์šฉ๋„ ํž™์€ ์ถ”์ƒ์  ์ž๋ฃŒํ˜•์ธ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ ์ค‘ ํ•˜๋‚˜๊ฐ€ O(n)์ผ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ํ•˜์ง€๋งŒ ํž™์„ ์ด์šฉํ•˜๋ฉด ๊ฐ€์žฅ ํฐ ๊ฐ’์ด๋‚˜ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋‘˜ ๋‹ค O(logn)๋งŒ์— ๋น ..