algorithm 75

๋ฐฑ์ค€ 14499

https://www.acmicpc.net/problem/14499Intuition๋ฌธ์ œ ์ž์ฒด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต์ง„ ์•Š์•„์„œ ์ฃผ์‚ฌ์œ„๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ๋งŒ ์ž˜ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.Approach์–ด๋А๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋”๋ผ๋„ ํŠน์ • ๋ฉด์ด ์•„๋ž˜์— ์žˆ์„๋•Œ ๋™์„œ๋‚จ๋ถ์— ์˜ค๋Š” ๋ฉด์ด ๊ณ ์ •๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค. ์ด๊ฑธ๋กœ 30๋ถ„ ๋‚ ๋ ธ๋‹คtop_n์ด ํ•˜๋Š˜์„ ๋ฐ”๋ผ๋ณด๋Š” ๋ฉด, ns ๊ฐ€ top_n ๊ธฐ์ค€์œผ๋กœ ๋ถ์ชฝ์— ์žˆ๋Š” ๋ฉด์œผ๋กœ ํ•œ๋‹ค.ํŠน์ • ๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ์ชฝ์— ์–ด๋–ค ๋ฉด์— ์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋™ ์„œ์— ์˜ค๋Š” ๋ฉด์ด ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์ด๋ฅผ ๋„ฃ์—ˆ๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด top_n = 1, ns = 2๋ผ๋ฉด ๋™์ชฝ์œผ๋กœ ์›€์ง์ผ๋•Œ top_n์ด 4, 6, 3, 1 ~~ ์›ํ˜•์œผ๋กœ ๋ณ€ํ•œ๋‹ค. // 1 -> 5 4 2 3// 2 -> 1 4 6 3// 3 -> 5 1 2 6// 4 -> ..

algorithm 2025.04.03

๋ฐฑ์ค€ 13458

Intuition๋‹จ์ˆœ ์ˆ˜ํ•™ ๊ตฌํ˜„์œผ๋กœ ํ’€๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.Approach(๊ฐ ์‹œํ—˜์žฅ์˜ ๊ฐ์‹œ์ž ์ˆ˜ - ์ด๊ฐ๋…๊ด€(B))/C + (๊ฐ ์‹œํ—˜์žฅ์˜ ๊ฐ์‹œ์ž ์ˆ˜ - ์ด๊ฐ๋…๊ด€(B))%C ? 1 : 0;์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ ์‹œํ—˜์žฅ์˜ ๊ฐ์‹œ์ž ์ˆ˜ - ์ด๊ฐ๋…๊ด€(B)์ด ์Œ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•ด ๋ช‡๋ฒˆ ํ‹€๋ ธ๋‹ค.์Œ์ˆ˜์ธ ๊ฒฝ์šฐ ๊ฐ ์‹œํ—˜์žฅ์˜ ๊ฐ์‹œ์ž ์ˆ˜ - ์ด๊ฐ๋…๊ด€(B)์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค.Complexity- Time complexity : O(N)- Space complexity : O(N)Code#include using namespace std;long long ans;int main() { long long N, arr[1000001]; cin>>N; for (int i=0; i>arr[i]; ..

algorithm 2025.03.30

๋ฐฑ์ค€ 3190

https://www.acmicpc.net/problem/3190 ํ’€์ด๋จผ์ € ๋ฑ€์€ ๋ชธ๊ธธ์ด๋ฅผ ๋Š˜๋ ค ๋จธ๋ฆฌ๋ฅผ ๋‹ค์Œ์นธ์— ์œ„์น˜์‹œํ‚จ๋‹ค.๋งŒ์•ฝ ๋ฒฝ์ด๋‚˜ ์ž๊ธฐ์ž์‹ ์˜ ๋ชธ๊ณผ ๋ถ€๋”ชํžˆ๋ฉด ๊ฒŒ์ž„์ด ๋๋‚œ๋‹ค.๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๊ทธ ์นธ์— ์žˆ๋˜ ์‚ฌ๊ณผ๊ฐ€ ์—†์–ด์ง€๊ณ  ๊ผฌ๋ฆฌ๋Š” ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค.๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด, ๋ชธ๊ธธ์ด๋ฅผ ์ค„์—ฌ์„œ ๊ผฌ๋ฆฌ๊ฐ€ ์œ„์น˜ํ•œ ์นธ์„ ๋น„์›Œ์ค€๋‹ค. ์ฆ‰, ๋ชธ๊ธธ์ด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.๋‹ค์Œ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.๋ฑ€ ์ „์ฒด ์นธ์„ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ , Queue์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์ด ๋จธ๋ฆฌ, ์™ธ๋ถ€ ๋ณ€์ˆ˜์— ๊ผฌ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋จธ๋ฆฌ๊ฐ€ ์›€์ง์ด๋Š” ๋ฐฉํ–ฅ ๊ทธ๋Œ€๋กœ ๊ผฌ๋ฆฌ๊ฐ€ ์›€์ง์ด๋„๋ก dirb ๋ฐฐ์—ด์— ๋จธ๋ฆฌ๊ฐ€ ์›€์ง์ด๋Š” ๋ฐฉํ–ฅ์„ ๋„ฃ์–ด์คฌ๋‹ค. #include #include #include #include using namespace std;// 1ํ–‰ 1์—ด..

algorithm 2025.03.30

๋ฐฑ์ค€ 12100 (์‚ผ์„ฑ ๊ธฐ์ถœ)

https://www.acmicpc.net/problem/12100์†Œ์š”์‹œ๊ฐ„ (2:01:00)ํ’€์ด4๊ฐœ์˜ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด์„œ ์ด๋™ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ๋‹ค.๋ธ”๋ก์ด ๋ฐ€๋ฆฌ๋ฉด์„œ ํ•ฉ์ณ์ง€๋Š” ๊ฒƒ๋งŒ ์ž˜ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.void shift_left(vector >& ori) { vector > v(N); // ์ „๋ถ€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ for (int i=0; i๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ํ•ฉ์น˜๋Š” ๋กœ์ง์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.๋ฐฉํ–ฅ์—๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ์นธ๋ถ€ํ„ฐ ํ–‰๋ ฌํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด ์ค€ ๋‹ค์Œ ์ขŒํ‘œ์— ๋”ฐ๋ผ ํ•ฉ์ณ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.๋„ค๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™, ํ•ฉ์น˜๋Š” ๋กœ์ง๋งŒ ์ž˜ ์จ์ฃผ๋ฉด ๋œ๋‹ค. //// Created by ljh on 25. 3. 28.//#include #include #include using n..

algorithm 2025.03.28

27. Remove Element

https://leetcode.com/problems/remove-element/description/?envType=study-plan-v2&envId=top-interview-150IntuitionInplace๋กœ ๋ณ€ํ™˜์„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.Approach๋ฐฐ์—ด์˜ ํƒ์ƒ‰๊ณผ ๋ฌด๊ด€ํ•œ idx ํฌ์ธํ„ฐ๋ฅผ ์žก์•„ ๋ฐฐ์—ด์˜ ์›์†Œ ์ค‘ val๊ณผ ๋‹ค๋ฅธ ์›์†Œ๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ idx์— ์ €์žฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. Inplace์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์ด ํ•„์š” ์—†๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.Complexity- Time complexity : O(N)- Space complexity : O(1) Codeclass Solution {public: int remov..

algorithm 2025.03.21

DP - ์•„์ดํ…œ์„ ์ ์ ˆํžˆ ๊ณ ๋ฅด๋Š” ๋ฌธ์ œ

์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ•œ ๋™์ „์˜ ์ด ๊ธˆ์•ก์ด ๊ฐ™๋‹ค๋ฉด -> ๋™์ „์ด ์ ์„์ˆ˜๋ก / ๋งŽ์„์ˆ˜๋ก ๋” ์ข‹๋‹ค.dp[i] = ์ง€๊ธˆ๊นŒ์ง€ ์„ ํƒํ•œ ๋™์ „์˜ ํ•ฉ์ด i์ผ๋•Œ, ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๋™์ „์˜ ๊ฐœ์ˆ˜. dp[i] = max/min ( 0= coin[j] ) dp[i - coin[j]] + 1  for(int i=1; i i || dp[i - coin[j]] == -1) continue; if(dp[i] == -1) { dp[i] = dp[i - coin[j]] + 1; }else { dp[i] = min(dp[i], dp[i - coin[j]] + 1); } } } dp[0] = 0์ด๊ณ , 0์„ ๊ธฐ์ค€์œผ๋กœ coin ..

algorithm 2025.03.21

935 div2 C. Manhattan Permutations

๋ฌธ์ œ๋”๋ณด๊ธฐํ’€์ด์กฐ๊ฑด์€ ์ฐพ์•˜๋Š”๋ฐ ์ˆœ์—ด์„ ์ถœ๋ ฅ์„ ๋ชปํ•ด์„œ ํ‹€๋ ธ๋‹ค.... ์šฐ์„  identity permutation ์—์„œ ์ˆ˜์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ” ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ฐจ์˜ ํ•ฉ์€ ์—ญ์ˆœ์ด๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ตญ ํŠน์ • x์™€ y์— ๋Œ€ํ•œ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋œ๋‹ค๋ฉด, abs(x-y) + abs(x-y)์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‘ ์Œ์‹ ๋‚˜์˜ค๊ฒŒ ๋˜๋ฏ€๋กœ ํ™€์ˆ˜๊ฐ€ ๋‹ต์ด ๋  ์ˆ˜ ์—†๋‹ค. ์ˆœ์—ด์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆ˜ํ•™์ ์ธ ๊ทœ์น™์„ ์ฐพ์•„์•ผ๋œ๋‹ค.[1, 2, 3, 4, 5, 6 ~~~~ xn] ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. 1์˜ ์œ„์น˜๋ฅผ ํŠน์ •ํ•œ xi์™€ ๋ฐ”๊พผ๋‹ค๊ณ  ํ•˜๋ฉด, ๊ทธ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๊ฐ’์€ 1 - xi, xi - 1์ด๋‹ค. ์ฐจ์˜ ์ ˆ๋Œ“๊ฐ’์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์•ผ ํ•˜๋ฏ€๋กœ ๊ฒฐ๊ตญ (xi - 1) * 2 ( xi > 1 ) ์ด ๋œ๋‹ค.1์˜ ์œ„์น˜์™€ xi ์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋“ค ์ค‘..

algorithm 2024.08.07

๋ฐฑ์ค€ 2671

๋ฌธ์ œ๋”๋ณด๊ธฐํ’€์ด์ผํ•˜๋‹ค๊ฐ€ ์ •๊ทœ์‹์„ ๋งŽ์ด ๊ฒฝํ—˜ํ–ˆ๋Š”๋ฐ ๋”ฑ ๋ณด์ž๋งˆ์ž ๊ทธ๋ƒฅ ์ •๊ทœ์‹ ์“ฐ๋ผ๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. (100+1+|01)+๊ฐ€ ๋์ด๋‹ค..์ •๊ทœ์‹ ๋ช‡๋ฐฑ์ž์งœ๋ฆฌ ์กฐ๊ฑด๋งž์ถ”๋А๋ผ ๋ˆˆ๋ฌผํ˜๋ฆฌ๋ฉด์„œ ์ผ์—ˆ๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š”๊ฑฐ๊ฐ™๋‹ค. #include #include #include using namespace std;bool matchReg(const string& str) { regex reg("(100+1+|01)+"); return regex_match(str, reg); }int main() { string str; cin>>str; if(matchReg(str)) cout

algorithm 2024.08.02

๋ฐฑ์ค€ 14848

๋ฌธ์ œ๋”๋ณด๊ธฐํ’€์ด๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ•ด์„œ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ’€์ง€ ๋ชปํ–ˆ๋‹ค. ํฌํ•จ ๋ฐฐ์ œ ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ์นด์šดํŒ… ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค. ํฌํ•จ ๋ฐฐ์ œ์˜ ์›๋ฆฌํฌํ•จ๋ฐฐ์ œ ์›๋ฆฌ๋ž€ ๊ฐ ์ง‘ํ•ฉ์˜ ํ•ฉ์ง‘ํ•ฉ์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. Ai๊ฐ€ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์ผ๋•Œ, A1 ~An์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒน์น˜๋Š” ๋ถ€๋ถ„(๊ต์ง‘ํ•ฉ)์„ ๋นผ์ค˜์•ผํ•œ๋‹ค.ํ•˜์ง€๋งŒ ๊ต์ง‘ํ•ฉ์„ ๋นผ์ฃผ๋Š” ๊ณผ์ •์—์„œ ์ค‘๋ณต๋œ ๋ถ€๋ถ„์ด ์ƒ๊ธฐ๊ณ , ์ด ์ค‘๋ณต๋œ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ฒดํฌํ•ด์ค˜์•ผ ๋œ๋‹ค.ํฌํ•จ ๋ฐฐ์ œ์˜ ์›๋ฆฌ๋Š” ์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ๋•Œ ์ „์ฒด ๊ฐœ์ˆ˜์— ๋”ํ•ด์ฃผ๊ณ , ์ง์ˆ˜์ผ๋•Œ ๋นผ์„œ ์ „์ฒด ํ•ฉ์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ฒฐ๊ตญ [1, 2, 3, 4, 5]๋ผ๋Š” ์ž…๋ ฅ์ด ๋“ค์–ด์™”์„๋•Œ [1], [1,2], [1,3] ~~~ [1,2,3,4,5]์™€ ๊ฐ™์€ ๋ชจ๋“  ์ง‘ํ•ฉ์˜ ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•˜๊ณ , ์›์†Œ..

algorithm 2024.08.02

๋ฐฑ์ค€ 1953

๋ฌธ์ œ๋”๋ณด๊ธฐํ’€์ด๊ฒฐ๊ตญ ์ด๋ถ„๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ๋‹ค. 51 31 52 1 41 31 2์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์ž. ์‹ซ์–ดํ•˜๋Š” ๊ด€๊ณ„๋ฅผ ์œ ํ–ฅ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ฆฌ๋ฉด ์ด๋ ‡๊ฒŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ 1๋ฒˆ๋…ธ๋“œ๋ถ€ํ„ฐ ์ฒญํŒ€์— ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด 1๋ฒˆ ๋…ธ๋“œ๋Š” 3๋ฒˆ์„ ์‹ซ์–ดํ•˜๋ฏ€๋กœ 3๋ฒˆ์€ ๋ฌด์กฐ๊ฑด ๋ฐฑํŒ€์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. 3๋ฒˆ์„ ๊ธฐ์ค€์œผ๋กœ 3๋ฒˆ๋…ธ๋“œ๋Š” 4๋ฒˆ์„ ์‹ซ์–ดํ•˜๋ฏ€๋กœ 4๋ฒˆ๋…ธ๋“œ๋Š” ์ฒญํŒ€์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. 4๋ฒˆ๋…ธ๋“œ๋Š” ์‹ซ์–ดํ•˜๋Š” ๋…ธ๋“œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๋‹ค์‹œ 2๋ฒˆ๋…ธ๋“œ๋ถ€ํ„ฐ ์ฒญํŒ€์— ๋„ฃ๊ณ  ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง€๊ฒŒ ๋œ๋‹ค. ์‹ซ์–ดํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†์œผ๋ฏ€๋กœ, ํ•œ๋ช…๋งŒ ์‹ซ์–ดํ•˜๋Š”์‚ฌ๋žŒ์ด ํ•œ๋ช… ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ํƒ์ƒ‰์˜ ๊ธฐ์ค€์—์„œ ๊ฐ€์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐฉ๋ฌธํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(N)์ด๋‹ค. #include #include #in..

algorithm 2024.08.01