์ ์ฒด ๊ธ
-
ํ (Queue)CS(ComputerScience) 2021. 5. 19. 14:26
์๋ ํ์ญ๋๊น. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์คํ๊ณผ ๋ฐ๋๋๋ ํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ํ(Queue) : FIFO(์ ์ ์ ์ถ) ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ๋ก ์ฝ๊ฒ ์๊ฐํ๋ฉด ๋๊ธฐ์ด์ ์์์ ๋ง์ด ํ์ฉ๋ฉ๋๋ค. -> ์ค์ํํธ์์๋ ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ฐ๋ก ์๊ธฐ์ ์ง์ ๋ง๋ค์ด์ ๊ตฌํํด์ผ ํฉ๋๋ค. ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ 4๊ฐ์ง ๋ฐฉ๋ฒ 1) ๋ฐฐ์ด 1๊ฐ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ : ํ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ ธ ํธ๋ฆฌํ์ง๋ง ๋์ ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ ์ ์ด์ ๋ฐ์ดํฐ๋ค์ ์ ๋ถ ์์น๋ฅผ ์ด๋์ํด์ผ๋ก O(n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค. ๋นํจ์จ์ ์ ๋๋ค. 2) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ 3) ๋ฐฐ์ด 2๊ฐ๋ฅผ ์ฌ์ฉํ ํ ๊ตฌํ : ์ถ๊ฐ๋๋ ํ์ ์ญ์ ๋ ํ(๋ฐ๋ ํ)์ ๋ฐฐ์ด 2๊ฐ๋ฅผ ์์ฑํ์ฌ ๊ธฐ๋ฅ์ ์์ผ์ค๋๋ค. ๊ทธ๋ด๊ฒฝ์ฐ ํ๊ณผ ํธ์ ๋ชจ๋ O(1..
-
๋ด์ Algorithm 2021. 5. 19. 13:35
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 > ๋ด์ ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ๊ธธ์ด๊ฐ ๊ฐ์ ๋ 1์ฐจ์ ์ ์ ๋ฐฐ์ด a, b๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. a์ b์ ๋ด์ ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ์ฌํญ a, b์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค. a, b์ ๋ชจ๋ ์๋ -1,000 ์ด์ 1,000 ์ดํ์ ๋๋ค. ์ ์ถ๋ ฅ ์ [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 a์ b์ ๋ด์ ์ 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 ์ ๋๋ค. ์ ์ถ๋ ฅ ์ #2 a์ b์ ๋ด์ ์ (-1)*1 + 0*0 + 1*(-1) = -2 ์ ๋๋ค. ์ด๋, a์ b์ ๋ด์ ์ a[0]*b[0] + a[..
-
์์ผ๋์นด๋ ํจํดSwift 2021. 5. 18. 15:07
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ์๋ ์์ผ๋์นด๋ ํจํด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ ํจํด๋ถํฐ ์ด๋ค๊ฑด์ง ์์๋ณด๋๋ก ํ์ฃ ! ํจํด(Pattern) : ๋จ๋ ํน์ ๋ณตํฉ์ ์ธ ๊ฐ์ ๊ตฌ์กฐํํ์ฌ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ์ฝ๋์์ ์ด๋ฌํ ํจํด์ ์ฐพ๋๋ก ๋น๊ตํ๋๊ฒ์ ํจํด๋งค์นญ์ด๋ผ ํฉ๋๋ค. ํจํด์ ์ข ๋ฅ 1) ๊ฐ ์ถ์ถ ๋ฐ ๋ฌด์ํ๋ ํจํด - ์์ผ๋์นด๋, ๋ฐ์ธ๋ฉ, ํํ, ์๋ณ์ 2) ํจํด๋งค์นญ์ ์ํ ํจํด - ์ด๊ฑฐํ ์ผ์ด์ค, ํ์ ์บ์คํ , ์ต์ ๋, ํํ ์ฌ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ์ ๋ฌด์ํ๋ ํจํด์ธ ์์ผ๋์นด๋ ํจํด์ ๋ํด ๋ณด๊ฒ ์ต๋๋ค. ์์ผ๋์นด๋ ํจํด(Wildcard Pattern) : _ ์๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์น์ ์ด๋ค ๊ฐ์ด ์๋ ๋ฌด์ํ๊ณ ํญ์ ์คํ๋๊ฒ ํ๋ ํจํด ์ฝ๋๋ฅผ ํตํ ์์ผ๋์นด๋ ํจํด ์ฌ์ฉ๐ฅ class WildCardPattern ..
-
์์ ๋ํ๊ธฐAlgorithm 2021. 5. 18. 10:11
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2 > ์์ ๋ํ๊ธฐ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ์ด๋ค ์ ์๋ค์ด ์์ต๋๋ค. ์ด ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes์ ์ด ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ absolutes์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค. absolutes์ ๋ชจ๋ ์๋ ๊ฐ๊ฐ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค. signs์ ๊ธธ์ด๋ absolutes์ ๊ธธ์ด์ ๊ฐ์ต๋๋ค. signs[i] ๊ฐ ์ฐธ์ด๋ฉด absolutes[i] ์ ์ค์ ์ ์๊ฐ ์์์์, ๊ทธ๋ ์ง ์์ผ๋ฉด ์์์์ ์๋ฏธํฉ๋๋ค. ์ ์ถ๋ ฅ ์ [4,7,12] [true,f..
-
์คํ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..
-
ํํAlgorithm 2021. 5. 17. 12:06
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์ฝ๋ฉํ ์คํธ > 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ > ํํ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ์ ์์๋ ์๋์ ์์์๋ ์ด๊ฑฐ ๋๋ ์ด๋ค ์์๋ฅผ ๋ฐ๋ฅด๋ ์์๋ค์ ๋ชจ์์ ํํ(tuple)์ด๋ผ๊ณ ํฉ๋๋ค. n๊ฐ์ ์์๋ฅผ ๊ฐ์ง ํํ์ n-ํํ(n-tuple)์ด๋ผ๊ณ ํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค. (a1, a2, a3, ..., an) ํํ์ ๋ค์๊ณผ ๊ฐ์ ์ฑ์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ค๋ณต๋ ์์๊ฐ ์์ ์ ์์ต๋๋ค. ex : (2, 3, 1, 2) ์์์ ์ ํด์ง ์์๊ฐ ์์ผ๋ฉฐ, ์์์ ์์๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ํํ์ ๋๋ค. ex : (1, 2, 3) ≠ (1, 3, 2) ํํ์ ์์ ๊ฐ์๋ ์ ํํฉ๋๋ค. ์์์ ๊ฐ์๊ฐ n๊ฐ์ด๊ณ , ์ค๋ณต๋๋ ์์๊ฐ ์๋ ํํ (a1, a2, a3, ...
-
JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐAlgorithm 2021. 5. 11. 12:08
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์ฝ๋ฉํ ์คํธ > JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ JadenCase๋ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๋ฌธ์๊ฐ ๋๋ฌธ์์ด๊ณ , ๊ทธ ์ธ์ ์ํ๋ฒณ์ ์๋ฌธ์์ธ ๋ฌธ์์ด์ ๋๋ค. ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s๋ฅผ JadenCase๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด s๋ ๊ธธ์ด 1 ์ด์์ธ ๋ฌธ์์ด์ ๋๋ค. s๋ ์ํ๋ฒณ๊ณผ ๊ณต๋ฐฑ๋ฌธ์(" ")๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ฒซ ๋ฌธ์๊ฐ ์๋ฌธ์ด ์๋๋์๋ ์ด์ด์ง๋ ์๋ฌธ์ ์๋ฌธ์๋ก ์๋๋ค. ( ์ฒซ๋ฒ์งธ ์ ์ถ๋ ฅ ์ ์ฐธ๊ณ ) ์ ์ถ๋ ฅ ์ "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" ๋ฌธ์ ํด๊ฒฐ func sol..