๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด 0์ ๊ธฐ์ค์ผ๋ก P๋ฅผ ํ์ ํ๋ค. 0P0, 0P, P0, P ํํ ๋ชจ๋ ๊ฐ๋ฅ ์ฆ, 211020101011์ด ์์ผ๋ฉด 0์ ๊ธฐ์ค์ผ๋ก ์๋ผ์ฃผ๋ฉด ๋๋ค. -> 211, 2, 1, 1, 11 ๊ทธ ํ ์ซ์๋ค์ ์์์ธ์ง ์๋์ง ํ๋ณํด์ฃผ๋ฉด ๋๋ค. ๋ค๋ง ์ด ๋ฌธ์ ์ ํต์ฌ์ ์๊ฐ ๋ณต์ก๋์ด๋ค. ์์๋ฅผ ๊ตฌํ ๋ 36์ด๋ฉด 1~36๋ชจ๋ ๋๋ ค์ ๋๋จธ์ง๊ฐ 0์ธ๊ฑธ ์ฐพ์ผ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค. 36์ ์ฝ์๋ฅผ ๋ณด๋ฉด 2 4 6 9 18 36์ ์ ๊ณฑ๊ทผ์ธ 6์ ๊ธฐ์ค์ผ๋ก ์ง์ ์ด๋ฃฌ๋ค. ๋ฐ๋ผ์ n์ ์ ๊ณฑ๊ทผ๊น์ง๋ง for๋ฌธ์ ๋๋ ค์ค๋ ์์์ธ์ง ์๋์ง ํ๋ณ ๊ฐ๋ฅํ๋ค. ์ฝ๋ func solution(_ n:Int, _ k:Int) -> Int { func isPrime(_ num: Int) -> Bool { if num < 2 { return..
๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ๋จ์ํ ๊ตฌํ๋ฌธ์ ๋ค. ํต์ฌ์ 1๋ฌ์ 29์ผ์ด๋ผ๋ ์ ๊ฐ๋ค. ๋ ์ง๋ฅผ ์ ์๋ก ๋ณํํด์ฃผ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ํด๊ฒฐํ๋ค. ex) 2021.10.21 ์ผ ๋ (2021 * 29 * 12) + (10 * 29) + (21) ์ฝ๋ func solution(_ today:String, _ terms:[String], _ privacies:[String]) -> [Int] { // ๋ ๋๋ฅผ ์ ์๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์ ex) 2021.02.05 -> 2021*29*12 + 2*29 + 5 func dateToInt(_ date: String) -> Int { let split = date.split(separator: ".").map {Int(String($0))!} return (split[0]*12*29)+(..
๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ์ผ๋จ ์ด ๋ฌธ์ ์ ํต์ฌ์ ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ๊ณณ๋ถํฐ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค๋ ๊ฒ ๊ฑฐ๋ฆฌ๋ฅผ ์ต์ํํ๋ ค๋ฉด ์ธ์ ๊ฐ ๋ฉ๋ฆฌ ์๋ ํ๋ฐฐ๋ ์ฒ๋ฆฌํด์ผํ๊ธฐ ๋๋ฌธ์ ์ฒจ๋ถํฐ ๋จผ ๊ณณ๋ถํฐ ๋ฐฐ๋ฌํ๋ฉด ๋๋ค. ๋จผ ๊ณณ๋ถํฐ ์ฒ๋ฆฌํ๋ค -> LIFO์ธ ์คํ์ด ์๊ฐ๋ฌ๋ค. ๋ฐ๋ผ์ while๋ฌธ์ ๋๋ฆฌ๋ฉฐ popLast๋ฅผ ํด์ฃผ๋ฉฐ ํ๋ฐฐ ์์ฉ๋ฒ์์ธ cap๊น์ง ์ต๋ํ ๋ฐฐ๋ฌํ๊ณ ์๊ฑฐํ๋ค. ์ฝ๋ func solution(_ cap:Int, _ n:Int, _ deliveries:[Int], _ pickups:[Int]) -> Int64 { var del = deliveries var pick = pickups var distance = 0 // ๋ค์์ ํ๋ฐฐ ๊ฐ์๊ฐ 0์ด๋ฉด ๋ค ์ ๊ฑฐ while !del.isEmpty { let num = del.popL..
๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ํ ์ธ์จ์ด ๋๋ค๊ณ ์ข์ ๊ฒ๋ ์๋๊ณ ๊ธฐ์ค์ก์ด ๋ฎ๋ค๊ณ ์ข์ ๊ฒ๋ ์๋ ๊ฒ ๊ฐ์๋ค. ๋ฐ๋ผ์ ํ ์ธํ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ง๋ฉฐ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ DFS๋ฅผ ์ฌ์ฉํ๋ค. DFS(ํ ์ธ๊ฐ์, [ํ ์ธํผ์ผํธ๋ค]) ๋ก ๋๋ฆฌ๋ฉฐ ํ ์ธ๊ฐ์๊ฐ ์ด๋ชจํฐ์ฝ ๊ฐ์๋ ๊ฐ์ ๋ ๋ฉ์ถ๊ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ์์ ์์ ์ด์ก์ ๊ณ์ฐํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค. ์ฝ๋ import Foundation func solution(_ users:[[Int]], _ emoticons:[Int]) -> [Int] { // ๊ฐ์ ์ ์, ํ๋งค์ก ๊ณ์ฐํด์ ๋ฆฌํด ex) [1, 5100] func calcResult(_ percents: [Int]) -> [Int] { var answer = [0, 0] for i in 0..