์ ์ฒด ๊ธ
-
๋ด์ 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..
-
N๊ฐ์ ์ต์๊ณต๋ฐฐ์Algorithm 2021. 5. 10. 18:55
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์ฝ๋ฉํ ์คํธ > N๊ฐ์ ์ต์๊ณต๋ฐฐ์์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ๋ ์์ ์ต์๊ณต๋ฐฐ์(Least Common Multiple)๋ ์ ๋ ฅ๋ ๋ ์์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด 2์ 7์ ์ต์๊ณต๋ฐฐ์๋ 14๊ฐ ๋ฉ๋๋ค. ์ ์๋ฅผ ํ์ฅํด์, n๊ฐ์ ์์ ์ต์๊ณต๋ฐฐ์๋ n ๊ฐ์ ์๋ค์ ๋ฐฐ์ ์ค ๊ณตํต์ด ๋๋ ๊ฐ์ฅ ์์ ์ซ์๊ฐ ๋ฉ๋๋ค. n๊ฐ์ ์ซ์๋ฅผ ๋ด์ ๋ฐฐ์ด arr์ด ์ ๋ ฅ๋์์ ๋ ์ด ์๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ์ ํ ์ฌํญ arr์ ๊ธธ์ด 1์ด์, 15์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค. arr์ ์์๋ 100 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์ ์ถ๋ ฅ ์ [2,6,8,14] 168 [1,2,3] 6 ๋ฌธ์ ํด๊ฒฐ import Foundation f..