๋ชฉ๋กํ๋ก๊ทธ๋๋ฐ (135)
Bibi's DevLog ๐ค๐
10872๋ฒ: ํฉํ ๋ฆฌ์ผ ํฉํ ๋ฆฌ์ผ์ ๊ตฌํํ๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค. ํฉํ ๋ฆฌ์ผ์ ์ ์๋ฅผ ๋ณด๊ณ ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋๋ค. 0! = 1 1! = 1 2! = 2 * 1 = 2 3! = 3 * 2 * 1 = 6 4! = 4 * 3 * 2 * 1 = 24 … ๋ฐ๋ณต๋ฌธ์ ์ธ๊น ํ๋ค๊ฐ ์ด๋ฒ์๋ ์ฌ๊ท๋ฅผ ํตํด ๊ตฌํํด ๋ณด์๋ค. ํ์ด let input = Int(readLine()!)! print(factorial(num: input)) func factorial(num: Int) -> Int { if num == 0 || num == 1 { return 1 } return num * factorial(num: num - 1) }
11006๋ฒ: ๋จ์ฑ์ด์ ๋ญ์ฅ ์ ๋ ฅ : ๋ชจ๋ ๋ญ์ ๋ค๋ฆฌ์์ ํฉ, ์ ์ฒด ๋ญ์ ์ ์ถ๋ ฅ : ํ ์ชฝ ๋ค๋ฆฌ๋ง ์๋ ๋ญ์ ์, ๋ฉ์ฉกํ ๋ญ์ ์ ํ์ด ๊ณํ ๋ญ์ ๋ค๋ฆฌ๋ 2๊ฐ์ด๋ฏ๋ก, ๋ญ์ ์ * 2๋ฅผ ํ๋ฉด ์ ์์ ์ธ ๋ญ์ ๋ค๋ฆฌ์์ ํฉ์ด ๋์จ๋ค. ์ ์ ๋ค๋ฆฌ์์ ํฉ์์ ๋ชจ๋ ๋ญ์ ๋ค๋ฆฌ์์ ํฉ์ ๋นผ๋ฉด ๋ค๋ฆฌ๊ฐ ์๋ฆฐ ๋ญ์ ์๊ฐ ๋๋ค. (ํ์ชฝ ๋ค๋ฆฌ๊ฐ ์๋ ค ๋๋จธ์ง ํ์ชฝ๋ง ๋จ์์์ผ๋ฏ๋ก) ๋ค๋ฆฌ๊ฐ ์๋ฆฐ ๋ญ์ ์๋ฅผ ๊ตฌํ์ผ๋ฏ๋ก, ์ ์ฒด ๋ญ์ ์์์ ๋ค๋ฆฌ๊ฐ ์๋ฆฐ ๋ญ์ ์๋ฅผ ๋นผ๋ฉด ๋ฉ์ฉกํ ๋ญ์ ์๋ ๊ตฌํ ์ ์๋ค. ํ์ด (Swift) let count = Int(readLine()!)! (1...count).forEach { _ in let inputArr = readLine()!.split(separator: " ").map { Int($0)! ..
[๋ฐฑ์ค 10987] ๋ชจ์์ ๊ฐ์ (Swift) 10987๋ฒ: ๋ชจ์์ ๊ฐ์ ์ ๋ ฅ ๋ฌธ์์ด์์ ๋ชจ์(a, e, i, o, u)์ ๊ฐฏ์๋ฅผ ์ธ์ ์ถ๋ ฅํ๋ ๋จ์ํ ๋ฌธ์ ์ด๋ค. ํ์ด๋ฅผ ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํ๋ค๊ฐ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ณด์๋ค. ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋๋ฉฐ ์ด๋ค ๋ฌธ์๊ฐ a, e, i, o, u ์ค ํ๋๋ผ๋ ๊ฐ์์ง ํ์ธํ๊ธฐ (== ์ฐ์ฐ์ ํ์ฉ) a, e, i, o, u ๋ฅผ ๋ด์ ๋ชจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋๋ฉฐ ์ด๋ค ๋ฌธ์๊ฐ ๋ชจ์ ๋ฐฐ์ด์ ํฌํจ๋๋์ง ํ์ธํ๊ธฐ (contains(_:) ํ์ฉ) ๋ ํ์ด๋ฅผ ๋ชจ๋ ์์ฑํ๊ณ ๋ ๋ค ๋ชจ๋ ์ ํ๋ ธ๋ค. ๊ฐ์ธ์ ์ผ๋ก ์๋ฌธ์ด ์๊ฒผ๋ ๋ถ๋ถ์ ๋ ํ์ด์ ์คํ์๊ฐ์ด ์์ ํ ๊ฐ์๋ค๋ ๊ฒ์ด๋ค. ๋๋ ๋น์ฐํ ํ์ด1์ด ๋ ๋น ๋ฅผ ๊ฒ์ด๋ผ ์์ํ๊ณ ํ์ด1์ ๋จผ์ ์๋ํ๊ณ , ๋ง์ ๊ฑธ ํ์ธํ ๋ค ํ์ด..
10811๋ฒ: ๋ฐ๊ตฌ๋ ๋ค์ง๊ธฐ n๊ฐ์ ๋ฐ๊ตฌ๋๋ค์ด ์์ ๋, m๋ฒ ๋ฐ๊ตฌ๋ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ ๋ค. m๊ฐ์ ์ํ๋ง๋ค i๋ถํฐ j๊น์ง๋ผ๋ ๋ฒ์๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ i ≤ j ≤ n) i == j ์ผ ๋๋ ๋ฐ๊ฟ ํ์๊ฐ ์๋ค. j - i == 1 ์ผ ๋๋ ๋ ์์์ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ค๋ค ``swapAt(*:*:)` ์ฌ์ฉ ๋๋จธ์ง ๊ฒฝ์ฐ์๋ i๋ถํฐ j๊น์ง์ ๋ฐ๊ตฌ๋๋ค์ ๋ค์ง์ด์ผ ํ๋ค. i ๋ถํฐ j๊น์ง ๋ค์ง๋ ๋ฐ๊ตฌ๋๋ค ์ธ์ ๋๋จธ์ง ๋ฐ๊ตฌ๋๋ค์ ๊ทธ๋๋ก ์ ์ง๋๋ค. ๋ค์ง๋ ๋ฐ๊ตฌ๋๋ค์ ์ ๋ถ๋ถ = head : ๊ทธ๋๋ก ์ ์ง ๋ค์ง๋ ๋ฐ๊ตฌ๋๋ค = reversed reversed() ์ฌ์ฉ ๋ค์ง๋ ๋ฐ๊ตฌ๋๋ค์ ๋ท ๋ถ๋ถ = tail : ๊ทธ๋๋ก ์ ์ง head + reversed + tail ์ ๋ถ๋ถ ๋ฐฐ์ด๋ค์ ๋ชจ๋ ํฉ์ณ ํ๋์ ๋ฐฐ์ด๋ก ๋ง๋ ๋ค์, ๊ทธ ๋ฐฐ..
[Swift] BFS ์์ ์ ํ์ด (๋ฏธ๋ก ํ์) BFS (Breadth First Search, ๋๋น ์ฐ์ ํ์) ์ธ์ ํ ๋ ธ๋๋ค์ ์ฐ์ ํ์ํ๋ ๋ฐฉ์. ๊ฐ๊น์ด ๋ ธ๋๋ถํฐ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ. 1950๋ ๋ฏธ๋ก๋ฅผ ํ์ถํ๋ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ธฐ ์ํด ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํ๋ฅผ ์ฌ์ฉํด ๊ตฌํํ๋ ๊ฒ์ด ์ ์์ด๋ค. ์ธ์ ๋ ธ๋๋ฅผ ํ์ ๋ฃ์ผ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ์ ์ ์ ์ถ์ด ๋์ด ๊ฐ๊น์ด ๋ ธ๋๋ถํฐ ํ์ํ๊ฒ ๋๋ค. O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. (n = ๋ฐ์ดํฐ์ ๊ฐ์) ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์ค์ ์ํ ์๊ฐ์ DFS๋ณด๋ค BFS๊ฐ ๋น ๋ฅธ ํธ์ด๋ค. ๋์ ๊ณผ์ ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ๊ณ , ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ด, ํด๋น ๋ ธ๋์ ์ธ์ ๋ ธ๋ ์ค์์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. ๋ง์ฝ ์ธ์ ๋ ธ๋ ์ค ๋ฐฉ..
[Swift] DFS ์์ ์ ํ์ด (์ฅ์ ๋ฌผ ์ธ์ ํ๋ก๊ทธ๋จ) Softeer ์์ ์ถ์ฒ: Softeer “์ฅ์ ๋ฌผ ์ธ์ ํ๋ก๊ทธ๋จ” (๋๋ ์ด์ฝํ “์๋ฃ์ ์ผ๋ ค๋จน๊ธฐ” - ๋ ์ฌ์) ๋๋ค Swift๋ ์ง์ํ์ง ์์ต๋๋ค..ใ DFS ๊น์ด ์ฐ์ ํ์ = ์์ ๋ ธ๋๋ถํฐ ํ์ํ๋ ๋ฐฉ์. ๋ฉ๋ฆฌ ์๋ ๋ ธ๋๋ถํฐ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ. (๊ทธ๋ํ์์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ) ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ : ํ ๋ฒ ์ฒ๋ฆฌํ ๋ ธ๋๋ฅผ ๋ค์ ์ฒ๋ฆฌํ์ง ์๋๋ก ์ฒดํฌํ๋ ๊ฒ. ์คํ ์๋ฃ๊ตฌ์กฐ์ ๊ธฐ์ดํ๋ค. ์ฌ๊ท๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์๋ค. O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. (n = ๋ฐ์ดํฐ์ ๊ฐ์) โ๏ธDFS๋ ์คํ์ ์ด์ฉํ๋ฉฐ ์ค์ ๊ตฌํ์์๋ ์ฌ๊ท๋ก ํ ์ ์๋ค. ๋ฌธ์ ์์จ์ฃผํํ SW ์์ง๋์ด์ธ ๋น์ ์๊ฒ ์ฅ์ ๋ฌผ๊ณผ ๋๋ก๋ฅผ ์ธ์ํ ์ ์๋ ํ๋ก๊ทธ..
[Swift] ๊ทธ๋ํ์ ํ์ ์๊ณ ๋ฆฌ์ฆ DFS/BFS ๊ฐ์ฅ ๋์์ด ๋ ๊ธ.. https://nareunhagae.tistory.com/56 ๐ '์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค' ์ฑ ๋ ํจ๊ป ์ฐธ๊ณ ํด ์์ฑํ์ต๋๋ค. ๊ทธ๋ํ Graph ๊ทธ๋ํ์์๋ ๋ชจ๋ ๊ฐ์ฒด๋ ์ ์ (๋ ธ๋)๋ก ๋ํ๋ด๊ณ , ๋ชจ๋ ๊ด๊ณ๋ ๊ฐ์ ์ผ๋ก ๋ํ๋ธ๋ค. ๋ ธ๋ Node / ์ ์ Vertex ๊ทธ๋ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋จ์. (๊ทธ๋ฆผ์์์ ๋๊ทธ๋ผ๋ฏธ = ๋ ธ๋) ๋ ๋ ธ๋๊ฐ ์ธ์ ํ๋คadjacent : ๋ ๋ ธ๋๊ฐ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์์ ์๋ฏธ ๊ฐ์ Edge ๋ ธ๋ ์ฌ์ด๋ฅผ ์๋ ์ . ๊ทธ๋ํ ํ์ : ํ๋์ ๋ ธ๋๋ฅผ ์์์ผ๋ก ๋ค์์ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ค 1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ๋ฐฐ์ด ํ์ ๋ฌธ์ ๋ฅผ ๊ทธ๋ํ ํํ๋ก ์๊ฐํ๋ฉด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค. ๊ทธ๋ํ ํ..
[๋ฐฑ์ค 10539] ์๋น์ด์ ์์ด 10539๋ฒ: ์๋น์ด์ ์์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ด์ด ์์ด A๊ฐ ์๋, ์์ด B๋ผ๋ ๊ฒ ์ด ํฌ์ธํธ์ด๋ค. ํ๊ท ์์ ๊ทธ๋๋ก ์ฐ๋ฉด ์๋๊ณ , ํ๊ท ์์ ๋ณํํด์ผ ํ๋ค. ์์ด B์ ๊ธธ์ด๊ฐ 4์ด๊ณ ์ฒซ ์์๊ฐ 3์ด๋ผ๋ฉด, ์์ด A์ ์ฒซ ์์๋ 3์ด๋ค. (์ฒซ ์์๋ 1๋ก ๋๋๋ฏ๋ก ๊ฐ์ด ๊ฐ์) ์๋ฅผ ๋ค์ด ์์ด B์ ๋ ๋ฒ์งธ ์์๊ฐ 2๋ผ๋ฉด, ์ด ๊ฐ์ (์์ด A์ ์ฒซ ์์ + ์์ด A์ ๋ ๋ฒ์งธ ์์) / 2 ์ ๊ฐ์์ผ ํ๋ค. ์ด๋ ์์ด A์ ์ฒซ ๋ฒ์งธ ์์๊ฐ 3์ด๋ฏ๋ก, ์์ด A์ ๋ ๋ฒ์งธ ์์๋ 2 * 2 - 3 = 1์ด ๋๋ค. ๋ฐ๋ผ์ ์์ด A์ n๋ฒ์งธ ์์ = (์์ด B์ n๋ฒ์งธ ์์ * n) - ์์ด A์ n-1 ๋ฒ์งธ ์์๊น์ง์ ์ดํฉ ์ด ๋๋ค. ํ์ด let count = Int(read..