์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Figma
- Filter
- Core Data
- ios
- UIRefreshController
- MongoDB
- Mac
- DispatchQueue
- Firestore
- Firestore CRUD
- ํ๋ก๊ทธ๋๋จธ์ค
- String.Index
- AVAudioPlayer
- Cloud Firestore
- ์ง๋ฒ๋ณํ
- mongoose
- CRUD
- ์ฑ๋์์ธ
- map
- ์ฑ๋ง๋ค๊ธฐ
- Encodable
- Codable
- components
- ExpressJS
- ์๊ณ ๋ฆฌ์ฆ
- Decodable
- Reduce
- nodejs
- SWiFT
- RxSwift
- Today
- Total
๋ชฉ๋ก์๊ณ ๋ฆฌ์ฆ (25)
Focus On Develop ๐ค๐ค
์๋๋.. ํฐ ์๊ฐ ์์ ์ฌ์๋ก ์ข์๊ฒ์ด์ฌ! ์ข์๊ฒ ์ข์๊ฒ์ด์ฌ! ๐ ๋ผ๋ ํ๋จ์ผ๋ก ์์ํ๋ค. k๊ฐ๋ฅผ ์ง์ด๋ค๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ number.count - k ์๋ฆฌ ์๋ก ๋ง๋ ๋ค๋ ๊ฒ์ด๋ค. ์ฃผ์ด์ง number์์ ๋ฑ์ฅํ๋ ์ซ์๋ฅผ Set์ผ๋ก ์ค๋ณต์ ๊ฑฐํ ํ์ ์ ๋ ฌํ๋ค๋ฉด, ๋ฑ์ฅํ๋ ์ซ์๋ค์์ ํฐ์๋ฅผ ์์๋๋ก ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ผ ๊ฐ์ฅ ํฐ ์๊ฐ number์์ ๋ฑ์ฅํ๋ ์ฒซ๋ฒ์งธ index๋ฅผ ์ฐพ๊ณ , ์ด ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ์ ๋ค์ด๊ฐ ์ ์์๊น? (๊ฒฐ๊ณผ๊ฐ์ ๋จ์ ์๋ฆฌ์๋ณด๋ค number์์ ์ด๊ฐ ๋ค์ ๋จ์ ์ซ์์ ๊ฐฏ์๊ฐ ๋ง์์ผํจ)๋ฅผ ์ฒดํฌํ ๋ค์.. ํ๋์ฉ ๋ฃ์ด์ฃผ๋ฉด ๋๊ฒ ๊ตฐ! ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ ๊ฐ์ฅ ํฐ ์์, number์์ ์ฒ์~ํฐ์๊ฐ ์กด์ฌํ๋ ์ธ๋ฑ์ค๊น์ง๋ฅผ ์ญ์ ํด์ค๋ค.(์ด์ ๊ฐ์ ํ์๋ ์์๋ฟ๋๋ฌ ํ์ ์๊ฐ๋ง ๋ฆ์ถค ใ ใ ) ์๋ฅผ๋ค์ด์.. "..
๋จผ์ ์๊ฐํด๋ณธ๊ฑด, skill์ ๊ฐ ์คํฌ ์ฌ์ด์ฌ์ด์ ์๋ฌด๊ฐ์ด๋ ๋ค์ด๊ฐ๋ ์๊ด์๋ ๋น๊ต์๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ค. (%C%B%D%).. ์ด๋ ๊ฒ๋ง ๋น๊ต์๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉด skill trees๋ฅผ ๋น๊ตํด๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์..? ๊ทธ๋ฌ๋ ์ด๋ป๊ฒ ํ๋์ง ๋ชจ๋ฆ ใ ๊ทธ๋์ ํํ ๋ฐฉ๋ฒ์.. skill trees๋ฅผ ํ๋ํ๋ ๋ณด๋ฉด์.. ์ ํด์ง ์ ํ skill์ ๋ฐฐ์ฐ๊ณ ํ๋๊ฑฐ๋? ํ๊ณ ๋ฌผ์ด๋ณด๊ธฐ๋ก ํ๋ค. (๋จผ์ ์ ํ์คํฌ์ ํฌํจ๋ ์คํฌ์ธ์ง? ๋ค์์ ์์ ์ ํ์คํฌ์ ๋ค ๋ฐฐ์ ๋์ง?) ๋ง์ฝ ์ ํ์คํฌ๊ณผ ์๊ด์๋ ์คํฌ์ด๋ผ๋ฉด ํ์ต ๊ฐ๋ฅํ๋ค๊ณ ํ๋จํ๊ณ pass ํ ์ ์๋๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. import Foundation func solution(_ skill:String, _ skill_trees:[String]) -> Int { var res ..
์.. ๋ณดํต ์ด๋ ๊ฒ ์๊ธด ๋ฌธ์ ๋ DP(Dynamic Programming) ์ด์๋ ๊ฒ ๊ฐ์๋ฐ.. ๐ญ (์ ๊ธฐ์ต์ด..) ์ํผ ์ด๋ ค์ด DP.. ํ์ ์์ฐ์ด ์ ์ ๋ถ์๋ถํฐ ์์๋๋ก ์ง์๊ธ์ ์ฃผ๊ฒ ๋๋ฉด ์ ์ผ ๋ง์ ๋ถ์์ '์'๊ฐ ๋์ค๋ ๊ฒ์ ์์์ ์ธ ๋ ผ๋ฆฌ์ธ๋ฐ.. ๊ทธ๋ ๊ฒ ํ์๋ ์์ธ ์ผ์ด์ค๊ฐ ์์์ง ํ์ฐธ์ ๊ณ ๋ฏผํ ๊ฒ ๊ฐ๋ค. (๊ทธ๋ผ DPํ....๐ ๐) ๊ทผ๋ฐ ๋ฑํ ์์ธ์ผ์ด์ค๊ฐ ์๊ฐ์ด ์๋์..? ์ผ๋จ ์ ๋ ฌํด์ ์์ฐ์ด ์ ์ ์์๋๋ก ํ๋ฒ ์ง์ํด๋ณด๊ธฐ๋ก ํ๊ณ , ์์ฐ์ ๋ค์ฐ๋ฉด ๋ท ๋ถ์๋ ๋ณด์ง๋ ์๋๊ฑธ๋ก.. ํ๋ฌ ๊ณ ๊ณ ์ฑ ใ ใ import Foundation func solution(_ d:[Int], _ budget:Int) -> Int { let array = d.sorted() var result = 0 var curB..
์ผ๋จ ์ํ๋ฒณ ๋์๋ฌธ์๋ ASCII์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ด์, s๋ฅผ ๋/์๋ฌธ์ ๋ฒ์์ ๋ฐ๋ผ ์ฒดํฌํ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ผ ๋ฏ ํ๋ฐ.. (๋๋ ASCII์ฝ๋๋ฅผ ์ฌ์ค ์ ๋ชจ๋ฆ ใ ) ์ํ๋ฒณ ์์๋ ์ด์ฐจํผ ์๊ณ ์๋ ๊ฑฐ๋๊น ์ฐจ๋ผ๋ฆฌ ์ํ๋ฒณ์ ๋ฏธ๋ฆฌ ์ ์ํด๋๊ณ , s์ ๋ฌธ์๋ค์ ์ฒดํฌํ๋ฉด์ ์ ์ํด๋ ์ํ๋ฒณ ๋ฌธ์์์ n๋งํผ ๋ค์ ์๋ ๋ฌธ์๋ก ๋์ฒดํ๋ ๊ฑธ๋ก ํ์ด์ผ๊ฒ ๋ค. z๋ฅผ ๋์ด๊ฐ๋ฉด Out of Index๋๊น.. ์ํ๋ฐฐ์ด์ฒ๋ผ % ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ Index๋ฅผ ์ฐพ์์ผ๊ฒ ๋ค. let alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" let lowerAlpha = alpha.lowercased() let arrayAlpha = Array(alpha) let arrayLowerAlpha = Array(lowerAlpha) f..
String -> Int๋ก Casting์ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด Casting์ด ์๋๋, ์ฒซ๋ฒ์งธ ๋ฌธ์๋ฅผ ํ์ธํด์ +, - ์ฌ๋ถ์ ๋ฐ๋ผ ๋ถ๊ธฐ์ฒ๋ฆฌ ํด์ฃผ๊ณ +,-์ ํด๋น๋๋ ๋ฌธ์๋ ๋ ๋ฆฌ๊ณ ์ซ์๋ก Casting์ ํด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. func solution(_ s:String) -> Int { var s = s if s[s.startIndex] == "+" { s.remove(at: s.startIndex) return Int(s)! } else if s[s.startIndex] == "-" { s.remove(at: s.startIndex) return -Int(s)! } else { return Int(s)! } } ์ง๋๋ฒ์ Swift๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์, String -> Int๋ก Casting์..
๋์๋ฌธ์ ๊ตฌ๋ถ์์ด p์ y๋ฅผ ์ฐพ์์ผ ํ๋ฏ๋ก, s๋ฅผ ์๋ฌธ์๋ ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ ํ์ ์นด์ดํธ๋ฅผ ํ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ๋ค! func solution(_ s:String) -> Bool { let string = s.lowercased() let pCnt = string.filter { $0 == "p" }.count let yCnt = string.filter { $0 == "y" }.count return pCnt == yCnt } ์ฌ์ค ๋๋ ํ์ค๋ก ์ฒ๋ฆฌํ ์ ์๋ ์ฝ๋๋ ์ด๋ ๊ฒ ๋ณ์๋ฅผ ํ๋ ํ๋ ์์ฑํ๋๋ฐ ์ต์ํด์ ธ์๋ค.(์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ณ ๋ คํ์๋ ์๊ณ ๋ฆฌ์ฆ ์์์ ๋ณ์ ์ ์ธ์ ์ต์๋ก ํ๋๊ฒ ์ข๊ธด ํ๊ฒ ๋ค.) ์ ๋ฌด๋ฅผ ํ๋ค๊ฐ ์ต๊ด์ด ๋๋ฒ๋ฆฐ.. ๐ญ ๐ญ ์๋ฌดํผ ์ด๋ ๊ฒ ํ๊ณ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ดค๋๋ฐ, S..
์ฌ์ค ์ฃผ์ด์ง๋ a, b ์ฌ์ด์ ํฉ์ for๋ฌธ์ผ๋ก ๋๋ฆฌ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์ธ๋ฐ, ๊ณ ๋ฏผ๋๋๊ฑด a์ b์ ๋์๊ด๊ณ๋ฅผ ๋น๊ตํ์ง ์๊ณ ํ๋ฒ์ ์ ์ฉ ๊ฐ๋ฅํ ๋ก์ง์ด ์๋..? ์.. reduce๋ฅผ ์ฐ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ Array๋ฅผ ๋ฒ์๋ก ์ ์ํ ์ค ๋ชจ๋ฅด๋ ํ์ฐ์ด๋ฏ๋ก.. ์ผ๋จ ํ๊ณ ๊ณต๋ถํด์ผ๊ฒ ๋ค ใ ใ ๐ญ func solution(_ a:Int, _ b:Int) -> Int64 { var res: Int64 = 0 if a > b { for i in b...a { res += Int64(i) } return res } else { for i in a...b { res += Int64(i) } return res } } ์ผ๋จ ํต๊ณผํ๊ณ ๋ค๋ฅธ์ฌ๋ ํ์ด ์ฐธ๊ณ ํด๋ณด๊ธฐ ๊ณ ๊ณ ์ฑ !!! ์ค์ค.. Array๋ฅผ ๋ฒ์๋ก ์ ์ํ๋ ค๋ฉด ์ด๋ ๊ฒ ํ๋ฉด ..
์ด๋ฒ์๋ ๋ ํํํ์ง ๋ง๊ณ filter๋ฅผ ์ ๊ทน ํ์ฉํด์ผ๊ฒ ๋ค!! (๋์ด๋ ๋งค์ฐ ์ฌ์ด ๋ฌธ์ ๋ฅผ ๋ณด๋ ๋ฐ๋ก ๋ ์ค๋ฅด๋๊ตฐ ใ ใ ๐๐) returnํ๋ ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด์ผ ํ๋๋ฐ, ์ ๋ ฌ ์์ ์ filter๋ฅผ ํ๊ธฐ ์ /ํ ๋ฌด๊ดํ ๋ฏ ํ๋ค. func solution(_ arr:[Int], _ divisor:Int) -> [Int] { let divided = arr.filter { $0 % divisor == 0 }.sorted() return divided.count != 0 ? divided : [-1] } ์๋ง ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ํ๊ธฐ ์์ํ ์ดํ๋ก ์ ์ผ ๋จ์๊ฐ์ ํ์ ๋ฌธ์ ์ธ๋ฏ..!? ใ ใ ๋๋ฌด ์ฌ์ด๊ฑฐ ์ฐพ์ํธ๋ ๋๋์ด๋ผ ์ค๋์ ๋ช๊ฐ ๋ ํ์ด์ผ๊ฒ ๋ค ๐ ๐ ์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉ๋ filter๊ฐ ๊ถ๊ธํ๋ค๋ฉด?? ๐ 2020/12..