์๋ฃ๊ตฌ์กฐ
-
FlogRiverOne ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 7. 18. 10:45
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ FlogRiverOne์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ A small frog wants to get to the other side of a river. The frog is initially located on one bank of the river (position 0) and wants to get to the opposite bank (position X+1). Leaves fall from a tree onto the surface of the river. You are given an array A consisting of N integers representing the falling leaves. A[K] represents the position wher..
-
์ค๋ณต ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 6. 29. 14:36
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ OddOccurrencesInArray์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired. For example, in array A such that: A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 the e..
-
์ฐ๊ฒฐ ๋ฆฌ์คํธCS(ComputerScience) 2021. 5. 20. 12:02
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ํด ์์๋ณด๊ณ Swift๋ก ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ๊ฒฐ๋ฆฌ์คํธ : ์ด์ / ๋ค์์ ์ฌ ๊ฐ์ ์ฐธ์กฐ ์ ๋ณด ๊ฐ์ง๋ ๋ฐฐ์ด์ ํํ - ๋ฌผ๋ฆฌ์ ์์๊ฐ ์์ฐจ์ ์ด์ง ์์ - ํ๋ฒ์ ์ฐพ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ ๋ถ๊ฐ - ๋ฐ์ดํฐ ์ฝ์ ๋ฐ ์ญ์ ์ ์ด๋ ์์ด ์ฐธ์กฐ ๊ฐ ๋ณ๊ฒฝ๋ง ํด์ฃผ๋ฉด๋์ ๋ฐฐ์ด๋ณด๋ค ์ฌ์ (์๋๊ฐ ๋น ๋ฆ) - ๋ ธ๋์ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ - ๋ ธ๋์๋ ๋ค์ ์ฃผ์๋ฅผ ๋ํ๋ด๋ ํฌ์ธํฐ๋ฅผ ์ง๋ - ๊ฒ์ ์๋๊ฐ ๋๋ฆฌ๊ณ ์ ์ฅ ๊ณต๊ฐ ํจ์จ์ฑ์ด ๋จ์ด์ง Swift๋ก ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํํ๊ธฐ import Foundation // ๋ ธ๋ ์ ์, Node์ ๊ฐ์ธ value์ ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ๊ฐ์ง next class Node { var data: T? var next: Node? init(data..
-
ํ (Queue)CS(ComputerScience) 2021. 5. 19. 14:26
์๋ ํ์ญ๋๊น. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์คํ๊ณผ ๋ฐ๋๋๋ ํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ํ(Queue) : FIFO(์ ์ ์ ์ถ) ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ๋ก ์ฝ๊ฒ ์๊ฐํ๋ฉด ๋๊ธฐ์ด์ ์์์ ๋ง์ด ํ์ฉ๋ฉ๋๋ค. -> ์ค์ํํธ์์๋ ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ฐ๋ก ์๊ธฐ์ ์ง์ ๋ง๋ค์ด์ ๊ตฌํํด์ผ ํฉ๋๋ค. ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ 4๊ฐ์ง ๋ฐฉ๋ฒ 1) ๋ฐฐ์ด 1๊ฐ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ : ํ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ ธ ํธ๋ฆฌํ์ง๋ง ๋์ ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ ์ ์ด์ ๋ฐ์ดํฐ๋ค์ ์ ๋ถ ์์น๋ฅผ ์ด๋์ํด์ผ๋ก O(n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค. ๋นํจ์จ์ ์ ๋๋ค. 2) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ 3) ๋ฐฐ์ด 2๊ฐ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ : ์ถ๊ฐ๋๋ ํ์ ์ญ์ ๋ ํ(๋ฐ๋ ํ)์ ๋ฐฐ์ด 2๊ฐ๋ฅผ ์์ฑํ์ฌ ๊ธฐ๋ฅ์ ์์ผ์ค๋๋ค. ๊ทธ๋ด๊ฒฝ์ฐ ํ๊ณผ ํธ์ ๋ชจ๋ O(1..
-
์คํCS(ComputerScience) 2021. 5. 18. 09:38
์๋ ํ์ญ๋๊น. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์คํ์ ๋ํด ์์๋ณด๊ณ Swift๋ก ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์คํ : ํ์ ์ ์ถ ์๋ฃ๊ตฌ์กฐ (LIFO) -> ๊ธฐ๋ฅ์ด ์ ํ๋ ๋ฐฐ์ด (ํธ์ฌ/ํ/ํฝ์ ์ธ๊ฐ์ง ์ญํ ๋ฐ์ ๋ชปํจ) -> ์์๊ฐ ์ค์ํ ๋ ๊ฐ์ฅ ๋ค ์์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋์ผ๋ก ๋ฐฐ์ด ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง (๋ฐฐ์ด๋ณด๋ค ํจ์จ์ ) -> ์ค๊ฐ ๋ฐ์ดํฐ ์ญ์ ๋ถ๊ฐ๋ฅ Swift๋ก ์คํ ๊ตฌํํ๊ธฐ import Foundation struct Stack { var stack: [T] = [] // ์ด๊ธฐํ ์ ์๋ฌด ๊ฐ์ด ์ฃผ์ด์ง์ง ์์๋ ๋์ํ๋ ์ด๊ธฐํ init() {} // ์ด๊ธฐํ ์ ๊ฐ์ด ์ฃผ์ด์ง๋ ๋์ํ๋ ์ด๊ธฐํ init(_ element: [T]) { stack = element } // ๋ฐ์ดํฐ ์ ์ฅ muta..
-
์ฐ์ ์์ ํCS(ComputerScience) 2021. 5. 17. 14:49
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ฐ์ ์์ ํ๋ฅผ Swift๋ก ๊ตฌํํ๋๊ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ๋จผ์ ์ฐ์ ์์ ํ๊ฐ ๋ฌด์์ธ์ง? ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค! ์ฐ์ ์์ ํ : ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์๋ฃ๋ค์ ํ๋ก ์์๊ฐ ๋์ ์๋ฃ๊ฐ ๋จผ์ ์คํ (FIFO) -> ํ๊ตฌ์กฐ -> ์์ ์ด์งํธ๋ฆฌ (ํ์ ์์ ์ด์งํธ๋ฆฌ) -> ์์ ์ด์งํธ๋ฆฌ: ๋ง์ง๋ง ๋ ธ๋ ๋ ๋ฒจ์ธ ๋๋จธ์ง ๋ ธ๋ ๋ ๋ฒจ์ด ์ ๋ถ ์ฑ์์ง ํํ์ ์ด์งํธ๋ฆฌ -> ํํ์ฉ: ์ต๋,์ต์ ๊ณ์ฐ / ํ์ ๋ ฌ(์ฐ์ ์์ํ) -> ์ค์ํํธ์์๋ ๋ฐฐ์ด๋ก ํํํ๋๊ฒ ํจ์จ์ -> ๋ ธ๋ ๋ ๋ฒจ์ด ์ฌ๋ผ๊ฐ์๋ก ๋ ธ๋ ์ 2๋ฐฐ์ฉ ์ฆ๊ฐ -> ๋ถ๋ชจ๋ ธ๋ i / ์์๋ ธ๋: 2i+1 / 2i+2 -> ํธ๋ฆฌ๋ O(log n) / ๋ฐฐ์ด์ O(1) Swift ์ฝ๋๋ก ๊ตฌํํ๊ธฐ import Foundation struct..
-
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆCS(ComputerScience) 2020. 12. 8. 16:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๊ฐ๋ ์ ๋ํด ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค. ์ปดํจํฐ ๊ธฐ๋ณธ์ง์์ด์ ์ข ์ด๋ ค์ฐ๋ฉด์ ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ๋ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ! ๋งํ์๋ฉด ํ๋ ๋๋ ์์๊ฒ์ด๊ณ ๋ง์ ๋ถ๋ถ์ด ์์ง๋ง ์ด๋ฒ ํฌ์คํ ์์๋ ์กฐ๊ธ ๊ฐ๋จํ๊ฒ ๊ฐ๋ ๋ง ์ง๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค^^ [์ฉ์ด ์ ๋ฆฌ] -. ์๊ณ ๋ฆฌ์ฆ: ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ ์ฐจ/๋ฐฉ๋ฒ์ ๋ชจ์ (์์ฐจ์ ์ธ ๋ฐฉ๋ฒ) -. ์๋ฃ๊ตฌ์กฐ: ์๋ฃ๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ ์ ์๋ ๋ฐฉ๋ฒ๋ก (๋ฐ์ดํฐ๋ฅผ ์ต์ ํํ์ฌ ์ฌ์กฐ๋ฆฝํ๋ ๋๋, ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํํ, data structer) [์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ] -. ์์๊ตฌ์กฐ / ์ ํ๊ตฌ์กฐ / ๋น์ ํ๊ตฌ์กฐ / ๋ฌผ๋ฆฌ๊ตฌ์กฐ / ์ถ์์ ๊ตฌ์กฐ :์์๊ตฌ์กฐ๋, ์๋ฃ(์ ์,์ค์ ๋ฑ..)๋ฅผ ์ชผ๊ฐ๊ฑฐ๋ ์กฐํฉํ์ฌ ๋ง๋ค์ด๋์ [์๋ฃ๊ตฌ์กฐ์ ํ์ฉ] 1. ๋ฐฐ..