๐ Algorithm
![[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์ซ์ ์ง๊ฟ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1cTZd%2FbtrTRZe4FYf%2FPRDtrRmxidMGIsTCfN0KQk%2Fimg.png)
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์ซ์ ์ง๊ฟ
์ฒ์ ์ ๊ทผ ๋ฐฉ๋ฒ ์ ํ์ฌํญ์ ๋ณด๋ฉด X,Y์ ๊ธธ์ด๊ฐ ๊ฝค๋ ๊ธด๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค. ํ์ง๋ง ์ด์ฐจํผ ๋ฌธ์์ด ๊ณ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ธธ์ด๊ฐ 7์ธ ๋ฌธ์์ด์ด๋ค. ๊ทธ๋์ 7**7์ผ๋ก ๊ณ์ฐ์ ํ๋ค.. /* 1. X๋ฅผ ๊ธฐ์ค์ผ๋ก Y visited[๊ธธ์ด Y] ๋ง๋ค๊ธฐ 2. Y๋ฅผ ๋ฐ๋ณตํด์ ๋๋ฉฐ ๊ฐ์ ์ซ์๊ฐ ๋์ค๋ฉด visited ์ฌ๋ถ ํ์ธํ๊ณ append 3. ๊ฐ๊ณ ์๋ ์ซ์ ์์ผ๋ฉด return "-1" ๋ชจ๋ 0์ด๋ฉด return "0" ์๋๋ฉด sortํด์ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ */ ๊ทธ๋ฆฌ๊ณ ์ฝ๋ import Foundation func solution(_ X:String, _ Y:String) -> String { var answer = [String]() var x = Array(X).map { String($0) } var y = Array(Y).m..
![[Swift] ์ฝํ
ํ๋ ์ ์ฉํ Input & Output ์ ๋ฆฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm9YjB%2FbtrIxvw5BPp%2FkvFZ7MCMGoIqp3HltYsKH0%2Fimg.png)
[Swift] ์ฝํ ํ๋ ์ ์ฉํ Input & Output ์ ๋ฆฌ
INPUT ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ readLine()์ return value๊ฐ ์ต์ ๋์ด๊ธฐ ๋๋ฌธ์ force unwrapping์ ํด์ค์ผ ์ฌ์ฉํ ์๊ฐ ์์ต๋๋ค โ๏ธ let str = readLine()! Array๋ก ๋ฐ๊ธฐ ๊ณต๋ฐฑ์ ๋๊ณ ๋ฌธ์์ด์ ๋ฐ๋ ๊ฒฝ์ฐ์๋ split์ ํตํด ๋ถ๋ฆฌํ์ฌ ์ ์ฅํ ์ ์์ต๋๋ค. ๐ก ์ฃผ์ํ ์ : split()ํ ๋ฐ์ดํฐ๋ String์ด ์๋ Substring์ ๋๋ค. (์์ฐํ ๋ค๋ฅธ type์ด๋ผ error๋๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ ์์๋๋ฉด ์ข์ต๋๋น) let arrString = readLine()!.split(separator: " ") Int๋ก ๋ฐ๊ธฐ ๐ ์ซ์ ํ๋๋ง ์ ๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ let num = Int(readLine()!)! ๐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ฌ๋ฌ๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ type์ Arra..
![[Swift] ๋ฐฑ์ค 2941 : ํฌ๋ก์ํฐ์ ์ํ๋ฒณ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJbD3y%2FbtrIywJX4tu%2F8Qoc08X1gbYgB9X52Bfcx1%2Fimg.png)
[Swift] ๋ฐฑ์ค 2941 : ํฌ๋ก์ํฐ์ ์ํ๋ฒณ
ํ์ด ์์ฃผ ๊ฐ๋จํ๊ฒ ์๊ฐํ๋ค. ํฌ๋ก์ํฐ์ ์ํ๋ฒณ์ ๋ฌธ์ ํ๋๋ก ๋ณด๊ธฐ๋๋ฌธ์ ํฌ๋ก์ํฐ์ ์ํ๋ฒณ๊ณผ ์ผ์นํ๋ ๋ฌธ์์ด์ ํ๋์ ๋ฌธ์(*)๋ก ๋ฐ๊พธ๊ณ countํ๋ค. ์ฝ๋ import Foundation var s = readLine()! let croatia = ["c=","c-","dz=","d-","lj","nj","s=","z="] for i in croatia { s = s.replacingOccurrences(of: i, with: "_") } print(s.count) ๋ฌธ์์ด์์ of: ์ ์ผ์นํ๋ ๋ฌธ์์ด์ ๋ with: ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฌธ์์ด์ return ํฉ๋๋ค. ์ฆ, ๊ธฐ์กด ๋ฌธ์์ด์ ์ฐธ์กฐํ์ง ์๊ณ ์๋ก์ด ๋ฌธ์์ด์ ์์ฑํฉ๋๋ค.
![[Python] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (DP)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQInhn%2FbtrtB73T8Cy%2F2kGy9kg09a7F8B0JgtA82k%2Fimg.jpg)
[Python] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (DP)
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ์ ์ ํ์๊ณผ memoization ์ด๋ค. DP๋ ์ฃผ๋ก bottom-up ๋ฐฉ์์ ์ฌ์ฉํ์ง๋ง, top-down์ผ๋ก๋ ๊ตฌํ ๊ฐ๋ฅํ๋ค. top-down์ ์ฌ๊ท+memoization์ ํตํด ๊ตฌํํ๋ค. ๋ํ์ ์ธ DP๋ฌธ์ ๋ก, ํผ๋ณด๋์น ์์ด์ด ์๋ค. https://www.acmicpc.net/problem/2748 2748๋ฒ: ํผ๋ณด๋์น ์ 2 ํผ๋ณด๋์น ์๋ 0๊ณผ 1๋ก ์์ํ๋ค. 0๋ฒ์งธ ํผ๋ณด๋์น ์๋ 0์ด๊ณ , 1๋ฒ์งธ ํผ๋ณด๋์น ์๋ 1์ด๋ค. ๊ทธ ๋ค์ 2๋ฒ์งธ ๋ถํฐ๋ ๋ฐ๋ก ์ ๋ ํผ๋ณด๋์น ์์ ํฉ์ด ๋๋ค. ์ด๋ฅผ ์์ผ๋ก ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n โฅ 2)๊ฐ www.acmicpc.net ๐ ํผ๋ณด๋์น ์์ ์ ํ์์ f(n) = f(n-1) + f(n-2) (n>=2) ๐ Bottom-Up ..
![[Python] ์ต์ํ(MIN heap) / ์ต๋ํ(MAX heap)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJrsq%2FbtrsaSUSjqA%2FQhlqCD1ofkyaW14uYA5jJ1%2Fimg.png)
[Python] ์ต์ํ(MIN heap) / ์ต๋ํ(MAX heap)
ํ์ ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ค. ํธ๋ฆฌ ์ค์์๋ ์์ ์ด์งํธ๋ฆฌ์ด๋ค. ์ต๋ ํธ๋ฆฌ๋ ํญ์ ๋ถ๋ชจ๊ฐ ์์๋ณด๋ค ๊ฐ์ด ํฌ๋ค. ์ต์ ํธ๋ฆฌ๋ ํญ์ ๋ถ๋ชจ๊ฐ ์์๋ณด๋ค ๊ฐ์ด ์๋ค. (์์๋ผ๋ฆฌ๋ ์๊ดX) python์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํ ๊ฒ์ธ๊ฐ? ๊ณ ๋ฏผํ ํ์ ์์ด module์ ์ฐ๋๋ก ํ๊ฒ ๋ค. ์ต์(Min) heap python์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ heap์ ๊ตฌํํ ์ ์๋ ๋ชจ๋์ ์ ๊ณตํ๋ค. import heapq heap์ผ๋ก ์ ์ธํ๋ ๊ฒ์ ์๋๊ณ , ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด์ heap์ผ๋ก ๋ง๋ค ์ ์๋ค. ์๋ฅผ ๋ค์ด ์ ๋ ฌ๋์ง ์์ arr ๋ฐฐ์ด์ heapify๋ก ์ ๋ ฌํ ์ ์๋ค. heapify(์ ๋ ฌํ ๋ฆฌ์คํธ) import heapq arr = [1,5,3,6,2] heapq.heapify(arr) print(arr) # [1,2,3,6,5..
![[Algorithm] LCA ์๊ณ ๋ฆฌ์ฆ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4KRxG%2Fbtq1e8b9ci2%2FEk8ez8JiFd0nLjVsoEDrYK%2Fimg.png)
[Algorithm] LCA ์๊ณ ๋ฆฌ์ฆ
LCA๋ "Lowest Common Ancestor" ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฐฑ์ค 3584๋ฒ์ ํ๋ฉด์ ์ดํดํด๋ณด์ฅ www.acmicpc.net/problem/3584 3584๋ฒ: ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์ ๋ฃจํธ๊ฐ ์๋ ํธ๋ฆฌ(rooted tree)๊ฐ ์ฃผ์ด์ง๊ณ , ๊ทธ ํธ๋ฆฌ ์์ ๋ ์ ์ ์ด ์ฃผ์ด์ง ๋ ๊ทธ๋ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์(Nearest Common Anscestor)์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค. ๋ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์, ๋ www.acmicpc.net ํด๋น ํธ๋ฆฌ์์ 3๋ฒ๊ณผ 2๋ฒ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์ 10๋ฒ์ด๋ผ๋ ๊ฒ์ ๋ฐ๋ก ์ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด a์b๊ฐ ์ฃผ์ด์ก์ ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ต์ ๊ณตํต ์กฐ์์ ์ฐพ์๋ณด์. Rule ๐ a์ ์กฐ์์ ๋ชจ๋ ์ฐพ์ ๋ฆฌ์คํธ๋ก ๋ง๋ ๋ค. ๐ b์ ์กฐ..
![[Python] ํ๋ก๊ทธ๋๋จธ์ค ์งํ ์ด๋](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPPoXc%2FbtqZUXiOLFu%2FPrmuSqjPrQG9HdSgpWpEV1%2Fimg.png)
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์งํ ์ด๋
๋ฌธ์ programmers.co.kr/learn/courses/30/lessons/62050 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์งํ ์ด๋ [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr ๊ณ์ ํ๋ ค์ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ํผ ๋ฌธ์ ์ด๋ค. ์ด๋ป๊ฒ ์ด๋ฐ์๊ฐ์ ๋ ์ฌ๋ฆฌ์ง...? heap์ ์ฌ์ฉํด์ ํ์๋ค. ์,ํ,์ข,์ฐ ์นธ ์ค์ ๋ฐฉ๋ฌธํ์ง ์์ ์นธ๊ณผ์ ๊ธธ์ด๊ฐ height๋ณด๋ค ํฌ๋ค๋ฉด heap์ ์ฐจ์ด์ ์ ์ ๊ธฐ๋กํ๋ค. height๋ณด๋ค ์๋ค๋ฉด 0๊ณผ ์ ์ ๊ธฐ๋กํ๋ค. ์ด๋ฅผ ์ด์ฉํด์ min heap์ผ๋ก..
![[Python] ํ๋ก๊ทธ๋๋จธ์ค ํฉ์น ํ์ ์๊ธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMlqh1%2FbtqZQH70NGl%2FpDiC0YqFgH6pakZsHh7n2k%2Fimg.png)
[Python] ํ๋ก๊ทธ๋๋จธ์ค ํฉ์น ํ์ ์๊ธ
๋ฌธ์ ์ ๋ํ ์์ธํ ์ค๋ช ์ ์๋ ๋งํฌ ์ฐธ์กฐ programmers.co.kr/learn/courses/30/lessons/72413 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํฉ์น ํ์ ์๊ธ 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr Dijkstra ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํ์๋ค. (์ต๋จ๊ฑฐ๋ฆฌ..
![[Algorithm] Dijkstra ๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjJXO7%2FbtqZSwrnXkD%2FeFASZddkDbs11xgv8lgwf0%2Fimg.png)
[Algorithm] Dijkstra ๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ A์์ B๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ๋จผ์ , ์๊ณ ๋ฆฌ์ฆ์ ์ง๊ด์ ์ผ๋ก ์ดํด๋ณด์ ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ํ์์ A->C๋ก ๊ฐ๊ณ ์ ํ ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํด๋ณด์. ์ฐ์ ์ถ๋ฐ์ง๋ก๋ถํฐ ์ธ์ ํ ๋ ธ๋๋ค๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ๋ค. (๋นจ๊ฐ์) ๊ทธ ๋ค์ ๋ ธ๋๋ก ์ด๋ํ๋ค. ํด๋น ๋ ธ๋์์ ์ธ์ ํ ๋ ธ๋๋ค ์ค์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ค ๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ๋ค. ๋ค์๊ณผ ๊ฐ์ด D์ ๊ฑฐ๋ฆฌ๊ฐ 5์์ 3์ผ๋ก ๊ฐฑ์ ๋์๋ค. (์ต๋จ ๊ฑฐ๋ฆฌ) C๊ฐ 5์์ 4๋ก ๊ฐฑ์ ๋์๋ค. ํ์ฌ ๋ฐฉ๋ฌธํ ๋ ธ๋๊ฐ ๋์ฐฉ์ง๋ผ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฃํ๋ค. ๊ทธ๋ฆผ์ฒ๋ผ A->C์ ์ต๋จ๊ฒฝ๋ก๋ 4๊ฐ ๋๋ค. ์์ ๊ฐ์ด ๋์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๐ Rule 1. ์ถ๋ฐ ๋ ธ๋๋ก๋ถํฐ ์ธ์ ํ ๋ ธ๋๋ค ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ๋ค. 2. ๋ค์ ๋ ธ๋๋ก ๋ฐฉ๋ฌธํ์ฌ ์ธ์ ๋ ธ๋..
![[Python] ๋ฐฑ์ค 7453](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDFNDT%2FbtqZIzh01HN%2FCkQMebNELe5RGnxVwrwQBK%2Fimg.png)
[Python] ๋ฐฑ์ค 7453
์ธ์ ๋ณต์กํ๊ณ ๊น๋ค๋ก์ ๋ค.. ์ด๊ฒ ์ ๊ฒ ์๋ํด๋ณด์๋๋ฐ 12์ด๋ ์ฃผ์ด์ง ์๊ฐ์ด ์๊พธ ์ด๊ณผ๋ผ์ ์ดํ์ด๋ ๊ฑธ๋ฆฐ ๋ฌธ์ ,, ๋น์ทํ ์ ํ์ ๋ฌธ์ ๊ฐ ๋ง๋ค. ๋ฐฑ์ค 1208๋ฒ ๋ฌธ์ ๋ ๊ฐ์ ์ ํ์ด๋ฏ๋ก ์ ํ์ ๋ํ ์ค๋ช ์ ์๋ ๋งํฌ์์ ์ฐธ์กฐ ๐https://990427.tistory.com/48 [Python] ๋ฐฑ์ค 1208 ๊ตฌ๊ธ๋ง์ด ์ ์๋ผ์...์ง์ ์ฐ๋ ๋ฆฌ๋ทฐ ๐ 1182๋ฒ ๋ถ๋ถ์์ด์ ํฉ๊ณผ ๊ฐ์ ์ ํ์ ๋ฌธ์ ์ด์ง๋ง ๋ฒ์์ ์๊ฐ์ ํ ๋ฑ์ผ๋ก ๋ค๋ฅธ ํ์ด ๋ฐฉ๋ฒ์ ์ ์ฉํด์ผํ๋ค. n๊ฐ์ ์์๋ฅผ ๊ฐ์ง ์์ด์ ๋ถ๋ถ ์์ด์ ๊ตฌํ 990427.tistory.com ์ฐ์ 1208๋ฒ๊ณผ ๊ฐ์ด ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค. ์ด์ ๋ ์ ๋ง ๋ชจ๋ฅด๊ฒ ๋ค... ๋์ ๋๋ฆฌ์ ์๊ฐ๋ณต์ก๋๊ฐ O(1)์ด๊ธด ํ์ง๋ง ์จ์ด์๋ ์์๊ฐ ๋งค์ฐ ํฌ๋ค๊ณ ํ..