๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (454)
Bibi's DevLog ๐ค๐
https://developer.apple.com/documentation/swift/array/removefirst() https://developer.apple.com/documentation/swift/array/removelast() removeFirst() : ๋งจ ์์ ์์ ์ ๊ฑฐ. O(n) removeLast() : ๋งจ ๋ค์ ์์ ์ ๊ฑฐ. O(1) ๋ ๋ค ๋น ๋ฐฐ์ด์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ removeFirst() ์ ๊ฒฝ์ฐ O(n) ์ด๋ฏ๋ก ํ์ dequeue๋ก ์ฌ์ฉํ ์ ์๋ค. https://developer.apple.com/documentation/swift/array/removefirst(_:) https://developer.apple.com/documentation/swift/array/remove..
์ฐธ๊ณ ๋งํฌ [์ฝ๋ฉํ ์คํธ ๋๋น] ์์ด(Permutation)๊ณผ ์กฐํฉ(Combination) ์๊ณ ๋ฆฌ์ฆ ์์ด ๊ตฌํํ๊ธฐ Permutation /// ์์ด permutation // ๊ธธ์ด๊ฐ n์ธ ๋ฐฐ์ด์์ r๊ฐ์ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋ฝ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค. // ๋ฐ๋ณต๋ฌธ : for๋ฌธ์ r๋ฒ ์ค์ฒฉ - i, j, k์ ์ค๋ณต์ ๋ฐฐ์ ํ๋ค func permutation() { // (n = 4, r = 3)๊ธธ์ด 4์ธ ๋ฐฐ์ด์์ 3๊ฐ์ ์์ ๋ฝ๊ธฐ let array = [1, 2, 3, 4] var answer: [[Int]] = [] for i in array.indices { // r๋ฒ ์ค์ฒฉ for j in array.indices { for k in array.indices { if (i == j || j == k || k ..
3035๋ฒ: ์ค์บ๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๋ฐ ์ข ์ค๋ ๊ฑธ๋ ธ๋ ๋ฌธ์ ..๐ค ์ฒซ ์ค์ดํ ์ฃผ์ด์ง๋ ์ ๋ ฅ์ ๊ฐ๊ฐ์ ๋ฌธ์๋ฅผ ZR*ZC๋งํผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. m*n ํ๋ ฌ : ๊ฐ๋ก๋ก m์ค, ์ธ๋ก๋ก n์ค ํ = row = ๊ฐ๋ก ์ด = column = ์ธ๋ก ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ๋ง ํท๊ฐ๋ฆฌ์ง ์๊ณ ์ ์ฌ์ฉํ๋ฉด ํ ์ ์๋ค. ๊ฐ ๋ฌธ์๋ณ๋ก ZC๋งํผ ๋ฐ๋ณตํด ํ ์ค์ ๋ง๋ ๋ค, ๋ง๋ ํ ์ค์ ZR๋งํผ ๋ฐ๋ณต ์ถ๋ ฅํ๋ค. ํ์ด let inputArr = readLine()!.split(separator: " ").map { Int($0)! } let r = inputArr[0] let c = inputArr[1] let zr = inputArr[2] // ์ธ๋ก let zc = inputArr[3] // ๊ฐ๋ก var answer: [String] = ..
3004๋ฒ: ์ฒด์คํ ์กฐ๊ฐ ๋๋ฌดํ์ n๋ฒ ์๋ฅผ ๋ ์ต๋ ๋ช ์กฐ๊ฐ ์ด ๋๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์ ํฌ๊ฒ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ท์น์ ์ฐพ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์๊ฐ์ ํ์ ๊ฑธ๋ฆด๊น ๋ด ๊ท์น์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ค. ๊ทผ๋ฐ ๊ฒฐ๊ตญ ์ฌ์ฉํ ๊ฒ reduce๋ผ์.. ์ฝ๊ฒ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ ๊ทผํ ๊ฑธ ์ถ๊ธฐ๋. (์๊ฐ์ ํ์ ๊ฑธ๋ฆฌ์ง ์๋ ๋ฏ - n์ ์ต๋๊ฐ์ด 100์ด๋ผ) ๊ท์น 1 : 2 2 : 4 3 : 6 4 : 9 5 : 12 6 : 16 7 : 20 8 : 25 9 : 30 10 : 36 ํ์ด1 (๋์ ํ์ด) 1์ผ๋ ์ด๊ธฐ๊ฐ์ด 2, ๋๋จธ์ง๋ +2 +2 +3 +3 +4 +4 .. ํจํด n์ด ํ์์ผ ๋๋ ์ด๊ธฐ๊ฐ 2์, 2๋ถํฐ (n + 1) / 2 ๊น์ง ๋ํ ๊ฐ์ ๊ณฑํ๊ธฐ 2 n=7 → 2 + (2…4) * 2 = 20 n์ด ์ง์์ผ ๋๋ ์ด..
2966๋ฒ: ์ฐ๊ธฐ ํ๋ก๊ทธ๋๋จธ์ค์ ‘๋ชจ์๊ณ ์ฌ’๋ฌธ์ ์ ๊ฑฐ์ ๋์ผํ๋ค. (https://school.programmers.co.kr/learn/courses/30/lessons/42840) ์ ํด์ง ํจํด๋๋ก ์ฐ์์ ๋ ๋๊ฐ ๊ฐ์ฅ ๋ง์ ์ ์๋ฅผ ๋ฐ๋์ง ์ถ๋ ฅ ๋์ ์๊ฐ ์์ ์ ์์ผ๋ฏ๋ก max๋ฅผ ์ฐพ์ ๊ฐ ์ธ์์ ์ ์์ ๋น๊ตํ๋ค ๋์ ์์ ๊ฒฝ์ฐ ์ฃผ์ด์ง ์ด๋ฆ ์์๋๋ก ์ถ๋ ฅํด์ผ ํจ ํจํด์ ๋ฐ๋ณต๋๋ ๋ถ๋ถ๊น์ง ํ๋์ฝ๋ฉ ํ, ์ธ๋ฑ์ค๋ฅผ ๋์ด๊ฐ์ง ์๋๋ก ๋๋จธ์ง ์ฐ์ฐ์๋ฅผ ํ์ฉํ๋ค. ํ์ด let count = Int(readLine()!)! let answers = readLine()!.map { String($0) } let student1 = ["A", "B", "C"] let student2 = ["B", "A", "B", "C"]..
https://www.acmicpc.net/problem/2953 2953๋ฒ: ๋๋ ์๋ฆฌ์ฌ๋ค "๋๋ ์๋ฆฌ์ฌ๋ค"๋ ๋ค์ฏ ์ฐธ๊ฐ์๋ค์ด ์๋ก์ ์๋ฆฌ ์ค๋ ฅ์ ๋ฝ๋ด๋ ํฐ๋น ํ๋ก์ด๋ค. ๊ฐ ์ฐธ๊ฐ์๋ ์์ ์๋ ์์์ ํ๋์ฉ ๋ง๋ค์ด์ค๊ณ , ์๋ก ๋ค๋ฅธ ์ฌ๋์ ์์์ ์ ์๋ก ํ๊ฐํด์ค๋ค. ์ ์๋ 1์ ๋ถํฐ 5 www.acmicpc.net ๊ฐ ์ค์ ์ฃผ์ด์ง์ซ์๋ฅผ ํฉํ๊ณ , ๊ฐ์ฅ ํฐ ์ ์์ ๊ทธ ์ ์์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ด var num = 0 var score = 0 (1...5).forEach { number in let inputSum = readLine()!.split(separator: " ").map { Int($0)! }.reduce(0, +) if inputSum > score { score = inputSum num = ..
Apple Developer Documentation type(of:) ๊ฐ์ ๋ค์ด๋๋ฏน ํ์ ์ ๋ฐํํฉ๋๋ค. ์ ์ธ func type(of value: T) -> Metatype ๋ฐํ๊ฐ ๋์ ํ์ (= ๋ฉํํ์ metatype ์ธ์คํด์ค) ํ๋ผ๋ฏธํฐ value: ๋์ ํ์ ์ ์ฐพ์ผ๋ ค ํ๋ ๊ฐ ์ค๋ช ์ด type(of:) ํจ์๋ ๊ฐ์ ๋์ ํ์ ์ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์์ต๋๋ค. ํนํ ๋์ ํ์ ์ด ์ ์ ํ์ ๊ณผ ๋ค๋ฅผ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ ์ ์ ํ์ (static type) ์ ๊ฐ์ ๋ช ์๋, ์ปดํ์ผ ์์ ์ ํ์ ์ ๋งํฉ๋๋ค. ๊ฐ์ ๋์ ํ์ (dynamic) ์ ์คํ ์์ ์ ๊ฐ์ ์ค์ ํ์ ์ ๋งํ๋ฉฐ, ๊ฐ์ ๊ตฌ์ฒด ํ์ ์ ํ์ ํ์ ์ด ๋ ์ ์์ต๋๋ค. ์๋ ์ฝ๋์์, count ๋ณ์๋ Int๋ผ๋ ๋์ผํ ์ ์ ํ์ ๊ณผ ๋์ ํ์ ..
Apple Developer Documentation swapAt(::) ์ปฌ๋ ์ ์ ์ง์ ์ธ๋ฑ์ค์ ๊ฐ์ ๊ตํํฉ๋๋ค. mutating func swapAt( _ i: Self.Index, _ j: Self.Index ) ํ๋ผ๋ฏธํฐ i : ๊ตํํ 1 ๋ฒ์งธ ๊ฐ์ ์ธ๋ฑ์ค j : ๊ตํํ 2 ๋ฒ์งธ ๊ฐ์ ์ธ๋ฑ์ค ์ค๋ช ๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋ชจ๋ endIndex์ ๊ฐ์ง ์์, ์ปฌ๋ ์ ์ ์ ํจํ ์ธ๋ฑ์ค๋ค์ด์ด์ผ ํฉ๋๋ค. i ์ j ์ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด **swapAt(_:_:) ๋ฅผ ํธ์ถํ๋ ๊ฒ์ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค. ๋ณต์ก๋ O(1)