Algorithm
-
[Algorithm] ์ฌ๋ผ์ด๋ฉ ์๋์ฐAlgorithm 2023. 5. 9. 09:14
์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋? ๊ณ ์ ๋ ๊ธธ์ด์ 2๊ฐ์ ํฌ์ธํฐ (์ปค์)๋ฅผ ๊ฐ์ด ์์ง์ด๋ฉด์ O(N)์ ๋ฐฐ์ด์ ํ์ํ๋ ํ ํฌ๋ N๊ฐ์ ์์๋ฅผ ๊ฐ๋ ๋ฐฐ์ด์ด ์๊ณ , W์ ๋์ด๋ฅผ ๊ฐ๋ ์ฐฝ๋ฌธ์ด ์๋ค๊ณ ๊ฐ์ ํ์. (N, W๋ ๊ณ ์ ๋ ์์) ์ฐฝ๋ฌธ์ ์ผ์ชฝ๋ถํฐ ์์ํด์ ํ ์นธ์ฉ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์์ผ์ผ ํ๋ค. ์ด๋์ํฌ ๋๋ง๋ค ์ฐฝ๋ฌธ ์์์์ ์ ๋ณด ์ ์ถ (ex. ํฉ)์ด ํ์ํ๋ค. ์๋ ์์๋ ์์์ ๊ฐ์๊ฐ 10๊ฐ์ด๋ฉด์ ์๋์ฐ ํฌ๊ธฐ๊ฐ 3์ผ ๋์ด๋ค. ๋ฌธ์ ์์ ๋๋๊ณ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ผ๊ณ ์ธ๊ธํ ๋๋ ์์ง๋ง, ๋ช๋ช ๋ฌธ์ ๋ค์ ์ธ๊ธ ์์ด ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํ ํฌ๋์ ์จ์ผํ ๋๊ฐ ์๋ค. ๐ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ๊ธฐ๋ณธ ์์ด๋์ด ์๋์ฐ๋ฅผ ํ ์นธ ์ฎ๊ธฐ๋ฉด (W-1)์นธ์ ๊ฒน์น๋ค. ์ด์ ์ ๋ด๊ฐ ๊ตฌํด์ผ ํ๋ ์ฐฝ๋ฌธ์ ํํ์ ๋ค์ ์ํ ์ฌ์ด์์ ์ค๋ณต๋ ์ ๋ณด๊ฐ W-1๊ฐ ์์ผ๋ฏ๋ก ..
-
[Algorithm] ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ (Two Pointer Algorithm)Algorithm 2023. 5. 2. 01:57
ํฌ ํฌ์ธํฐ ๊ธฐ๋ฒ์ด๋?2๊ฐ์ ํฌ์ธํฐ๋ฅผ ๋ง๋ค์ด์ ๊ฐ๊ฐ์ด ๊ฐ๋ฆฌํค๋ ์์์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ์ฌ ์๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆO(N^2)๋ฅผ O(N)์ผ๋ก ์ค์ผ ์ ์๋ค.๋๋ค์๋ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ฌ์ฉํ๋ค. ์ ๋ ฌ๋ ๋ฐฐ์ด์์ O(N^2) ํ์ ์ค ํ์ ์๋ ์ฐ์ฐ์ ๋ฒ๋ ค์ O(N)์ผ๋ก ์ค์ธ๋ค.ํฌ์ธํฐ์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ๋ ์์ ์ ๋ํ ์์๋ค์ ๋ค์ํ๊ฒ ์ ํด์ผ ํ๋ค.ํฌ ํฌ์ธํฐ ๋ํ ์ ํํฌ์ธํฐ 2๊ฐ๊ฐ ์๋์์ ๋ฐ๋๋ก ์งํํด ๋์๊ฐ๋ ๋ฐฉ์ํฌ์ธํฐ 2๊ฐ๊ฐ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์งํํด ๋์๊ฐ๋ ๋ฐฉ์ํฌ์ธํฐ ํ๋๋ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์งํํ๊ณ , ๋ค๋ฅธ ํฌ์ธํฐ๋ ์์ชฝ์ผ๋ก ์ด๋ํ๋ ๊ฒํฌ ํฌ์ธํฐ ๋์ ์๋ฆฌ10๊ฐ์ ์๋ก ๋ค๋ฅธ ์์ ์ ์๋ก ์ ๋ ฌ๋ ์์ด์์, ๋ ์ (i, j)์ ํฉ์ด 13์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ์์ค. (1 ≤ i ๋ง์ฝ ์ ๋ฌธ์ ๋ฅผ ์์ ํ์์ผ..
-
[Algorithm] ์๊ฐ ๋ณต์ก๋ & ๊ณต๊ฐ ๋ณต์ก๋Algorithm 2022. 1. 12. 02:35
์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ๋ ๋ ๊ฐ์ง ์์๋ ์๊ฐ ๋ณต์ก๋ (Time Comlexity)์ ๊ณต๊ฐ ๋ณต์ก๋ (Complexity)๋ก ๋๋๋ค. ์ด ๋ ๊ฐ์ง๋ ์๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ๊ฐํ๋ ๊ฒ์ธ๋ฐ, ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐ ๋ณต์ก๋๋ผ ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๊ณต๊ฐ ๋ณต์ก๋๋ผ๊ณ ํ๋ค. ํ๋ก๊ทธ๋จ์ ์งค ๋์๋ ํญ์ worst case๋ฅผ ๊ณ ๋ คํด์ผํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ ๋ณดํต Big-Oh ํ๊ธฐ๋ฒ์ ์ด์ฉํด์ ๋ํ๋ธ๋ค. ใ ค 1. ์๊ฐ ๋ณต์ก๋ (Time Complexity) ์๊ฐ ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ ๋ถ์ ๊ฒฐ๊ณผ์ด๋ค. ์๊ฐ ๋ณต์ก๋๋ฅผ ํ๊ฐํ ๋์๋ ๋จผ์ ์ฐ์ฐ์ ํ์๋ฅผ ์ธ๊ณ , ์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ์ ์ n์ ๋ํ ์ฐ์ฐํ์์ ํจ์ T(n)์ ๋ง๋ ๋ค. ์๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ์ด 3๊ฐ์ง๋ก..
-
[Algorithm] ์๊ณ ๋ฆฌ์ฆ ํ ์ ๋ฆฌ (C++)Algorithm 2022. 1. 5. 10:43
1. auto list l; string word; cin >> word; for (auto c: word) { l.push_back(c); // word์ ์ ๋ ฅ๋ ๋จ์ด๋ฅผ ํ๋ํ๋ l์ ๋ฃ๋๋ค. } for (auto c: l) cout > word; for (auto c: word) { l.push_back(c); // word์ ์ ๋ ฅ๋ ๋จ์ด๋ฅผ ํ๋ํ๋ l์ ๋ฃ๋๋ค. } for (auto i = l.begin(); i != l.end(); i++) { cout word; for (auto c: word) { l.push_back(c); // word์ ์ ๋ ฅ๋ ๋จ์ด๋ฅผ ํ๋ํ๋ l์ ๋ฃ๋๋ค. } for (auto i = l.rbegin(); i != l.rend(); i++) { cout
-
[Algorithm] ์๊ณ ๋ฆฌ์ฆ ํ ์ ๋ฆฌ (Swift)Algorithm 2022. 1. 5. 10:40
1. ๋ฐฐ์ด์ ๋ชจ๋ ์์ ๋ํ๊ธฐ, ๋ชจ๋ ๊ณฑํ๊ธฐlet arr = [1, 2, 3, 4, 5]// ๋ฐฐ์ด์ ์์ ๋ชจ๋ ๋ํ ๊ฐlet addTotal = arr.reduce(0, +) // 15// ๋ฐฐ์ด์ ์์ ๋ชจ๋ ๊ณฑํ ๊ฐlet mulTotal = arr.reduce(1, *) // 120 2. ๊ณต๋ฐฑ์ผ๋ก ์ซ์ ์ฌ๋ฌ ๊ฐ ์ ๋ ฅ ๋ฐ์ ํ ์ ์ ๋ฐฐ์ด๋ก ์ ์ฅํ๊ธฐ// components ์ฌ์ฉvar nums = readLine()!.components(separatedBy: " ").map { Int($0)! }var nums = readLine()!.components(separatedBy: " ").compactMap { Int($0) }// split ์ฌ์ฉvar nums = readLine()!.split(separa..