์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- mongoose
- ํ๋ก๊ทธ๋๋จธ์ค
- DispatchQueue
- Figma
- Mac
- Encodable
- ExpressJS
- ์ฑ๋ง๋ค๊ธฐ
- Decodable
- Firestore CRUD
- components
- CRUD
- Firestore
- nodejs
- AVAudioPlayer
- Cloud Firestore
- SWiFT
- ios
- MongoDB
- ์ฑ๋์์ธ
- Core Data
- Filter
- String.Index
- ์๊ณ ๋ฆฌ์ฆ
- UIRefreshController
- RxSwift
- Codable
- Reduce
- ์ง๋ฒ๋ณํ
- map
- Today
- Total
๋ชฉ๋กiOS [Swift] (55)
Focus On Develop ๐ค๐ค

Swift์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊น์~? Swift์์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ํ๋ฅผ ๋ง๊ธฐ์ํด ARC ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์๋๋ฐ์! ์ด ARC์ ๋ํด์ ํ๋ฒ ์์๋ณด๋ ค๊ณ ํด์! RC๋ Reference Counting์ ์ฝ์๋ก ์ ํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ผ๋ ๊ธฐ๋ณธ์ ์ธ Rule์ด๋ผ๋ ์ ์ ๋ฅผ ๋ก๋๋ค. MRC๋ Manual Reference Counting์ ์ฝ์๋ก Object-C์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ! ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น/ํด์ ํด์ค์ผ ํ ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋๋ฐ, ์ด ๋ถ๋ถ์ ์ฟจํ๊ฒ ์์ ๋๋ก ํจ์คํฉ๋๋ค.ใ ์ด๋ฏธ Swift๊ฐ ๋ณดํธํ ๋์๊ณ , ์ ๋ํ Object-C๋ 1๋ ๋ชจ๋ฅด๊ณ ํ์ฌ ์ฌ์ฉ๋ ์ํ๊ธฐ ๋๋ฌธ..ใ ๐๐ ์ ์ด์ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์, ARC๋ Automatic Reference Counting์..
์ด ํ์ด์ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ์์ฃผ(?) ์ฐ์ด๋ ์คํฌ(?) ๊ฐ์ ๊ฒ๋ค์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ ์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด์ ์..? root๊ฐ ์ด๋ป๊ฒ ๊ตฌํ์ง.. ์ง๋ฒ๋ณํ ์ด๋ป๊ฒ ํ์ง.. ๋ฑ๋ฑ! (๋งค๋ฒ ๊ตฌ๊ธ๋งํ๊ธฐ ๋ ๊ท์ฐฎ..๐) ์ ~๋ง ๊ฐ๋จํ๊ฒ ์ฌ์ฉ๋ฒ๋ง ์ ๋ฆฌํ ์์ ์ด๋๋๋ค ๐ ๋ฌธ์ ํ๋ฉด์ ๋ ์์ฃผ ๋ณด์ด๋ ๊ฒ์ ์ด ํ์ด์ง์ ์ถ๊ฐํด๋๊ฐ ์์ ์ ๋๋ค ๐๐ - ๋ฐฐ์ด ์ด๊ธฐ๊ฐ ๋ฃ์ด์ ๋ง๋ค๊ธฐ var array = Array(1...5) // [1,2,3,4,5] - ํฌ๊ธฐ๊ฐ ์ ํด์ง ๋ฐฐ์ด ๋ง๋ค๊ธฐ var arr = Array(repeating: 0, count: 3) // [0,0,0] - 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ let array: [[Int]] = Array(repeating:Array(repeating:1, count: 4), c..

์ผ๋จ ์นดํซ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ๊ท์น ํน์, ์๋ฆฌ๋ฅผ ์์๋ด์ผ ํ๋ค. ์ฒ์ ์๋๋ brown ๊ธฐ์ค์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ถ์ ํ๋ ค๊ณ ํด๋ณผ๊น ํ๋๋ฐ.. ์์ 3๋ฒ ์ผ์ด์ค์์ ์? ์ด๊ฑด์๋๊ฒ ๊ตฌ๋ ํ๊ณ ์๊ฐ์ด ๋ค์๋ค ใ ใ ์ฆ.. ์ด๋ฌธ์ ๋ yellow ๋ก๋ถํฐ ํฌ๊ธฐ๋ฅผ ์์๋ด์ผํ๋ค๋ ์๋ฏธ๋ค. ์ง์ฌ๊ฐํ๊ณ yellow์ ํฌ๊ธฐ๊ฐ ์ต์ 1x1์ ๋๋(์ ์ถ๋ ฅ ์ ํ์ฌํญ), yellow์ ํฌ๊ธฐ๋ง ์๋ฉด yellow์ (์์๋๊ธธ์ด + ์ข์ฐ๊ธธ์ด) x 2 + 4(๋์ชฝ๋ชจ์๋ฆฌ) ๋ง ํด์ฃผ๋ฉด brown์ ๊ฐฏ์๋ฅผ ๊ตฌํ ์ ์๋ค. (brown์ yellow๋ฅผ ๊ฐ์ธ๋ ํ ๋๋ฆฌ๋๊น) ๊ด๊ฑด์ yellow์ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ ๊ตฌํ์ง? yellow์ ํฌ๊ธฐ๋ ๊ฐ๋กx์ธ๋ก๋ก ๊ตฌํด์ง ๊ฑด๋ฐ, ๊ฐ๋ฅํ ์กฐํฉ์ ๊ฐ๋กx์ธ๋ก (์ฝ์์ ๊ณฑ) ์ค์ ์์์ ๋์ถํ brown ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ๊ณต์์ ๋ฃ์์..

"numbers๋ฅผ ์ญ ์ด์ด๋ถ์ฌ์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋๋ ค๋ฉด, ์ ์ผ ์์๋ฆฌ์ ์ ์ผ ํฐ ์๊ฐ ๋ค์ด์ค๋ฉด๋๋ค" ๋ผ๋ ์ ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ํ๋ค. ์.. ๊ทผ๋ฐ ์์์ 2๋ฒ์ผ์ด์ค๋ฅผ ๋ณด๋ฉด 3, 30, 34 ์ด๋ ๊ฒ ํฌํจ๋์ด ์๋๋ฐ ์์๋ฆฌ๊ฐ ๋ชจ๋ 3์ด๋ฉด ์ด๋ป๊ฒ ํ์ง? ์ด ๋ถ๋ถ์ ๊ณ ๋ฏผํ๋๊ฒ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๊ฒ ๊ฐ๋ค. 3์ด 34๋ณด๋ค๋ ๋ค์, 30๋ณด๋ค๋ ์์ ์์ด์ผ ๊ฐ์ฅ ํฐ ์๊ฐ ๋์ค๋๋ฐ, (์๋ฆฟ์๊ฐ ๊ฐ๋ค๋ฉด ๊ทธ๋ฅ ์ ๋ ฌํ๋ฉด ๋๋๋ฐ, ์๋ฆฟ์๊ฐ ๋ค๋ฅด๋ฉด ๋น๊ต๊ฐ ์ด๋ ต๋ค.) ์ค์ ๋ก ๋ด๊ฐ ๋น๊ตํ ํ๋์ 3์ 3๊ณผ, 30์ 0์ค ์ด๋ค๊ฒ ๋ ํฐ๊ฐ์? ๋ผ๊ณ ์์ ๋ ๊ฒ ๊ฐ๋ค. ๊ทผ๋ฐ ์๋ฆฟ์๊ฐ ๊ธธ๊ณ ๋น๊ตํด์ผ ํ ๊ฒ ๋ง๋ค๋ฉด..??? ๊ทธ๋ฐ ๊ฒฝ์ฐ๋, ์ ๋ ฅ๋ฐ์ ์๋ฅผ String์ผ๋ก ๋ณํํ์ฌ ๋น๊ต๋ฅผ ํด์ผํ๋๋ฐ.. ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ์์๊ฐ ์ต๋ 1000 ์ดํ๋ก ์ฃผ์ด์ง๋..

์.. ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ๋ค. ์ฒซ๋ฒ์งธ๋ Brute Force ๋ฐฉ์์ผ๋ก, H-Index๊ฐ 0์ผ๋ก ์์ํด์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ citations๋ฅผ ํ์ธํ๋๋ฐ, H-Index์ ํด๋น๋๋ ์๊ฐ citations ์์ H-Index๊ฐ ์ด์์๋์ง?๋ฅผ ๋ณด๋ค๊ฐ.. ์๋ ์๊ฐ์ด ์ค๋ฉด break ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. (๊ทผ๋ฐ ์ด๋ฐฉ๋ฒ์.. ๋ถํ์ํ ์ฐ์ฐ๊ณผ ์์ด์๋ ์๋ ์ผ์ด์ค๊ฐ ๋ค์ด๊ฐ๋ค. ์๋ฅผ๋ค๋ฉด 1000์ผ๋ก 1000๊ฐ๊ฐ ๋ค์ด์๋ค๋ฉด..?ใ ใ ์ฃ..๐) ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋ ฌ์ ์ฌ์ฉํ๋๋ฐ citations ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ํ์ธํ๋ ๊ฒ์ด๋ค. ์์๋ฅผ ์๋ก๋ค๋ฉด, ์ ๋ ฌ๋ citations๋ 0, 1, 3, 5, 6 ์ด๊ณ , totalCount - index -1 ๊ณผ ๋น๊ตํด์ citations๊ฐ ์๊ฑฐ๋ ๊ฐ๋ค๋ฉด.. ์ ์ด๋ to..

๋จผ์ ๊ฐ ์์ ์ด ๋ช์ผ์ ํ์๋ก ํ๋์ง ์์์ผ ํ๋ค. (100-progress) / speed ๋ฅผ ํ๋ฉด ๋๋๋ฐ, ์ด๊ฒ ๋ฑ ๋๋์ด ๋จ์ด์ง์ง ์๋ ๊ฒฝ์ฐ ํ๋ฃจ๊ฐ ๋ ํ์ํ๋ค. ์ด๋ ๊ฒ ์์ ์๊ฐ์ด ๊ณ์ฐ๋ Queue๋ฅผ ๊ฐ์ง๊ณ ๋ฉ์ธ ๋ก์ง์ ์์ํ๋ค. ์ ์ผ ๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์ ์ ์์ ์ด ์๋ฃ๊ฐ ๋ ๋๊น์ง ์๊ฐ์ ํ๋ฌ ๋ณด๋ธ๋ค.(ํ์๋ก ํ๋ ์์ ์ผ์์์ 1์ฉ ๋นผ๊ธฐ) ๊ทธ๋ฌ๋ค ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ์์ ์ด ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋๋ฉด ๊ทธ ๋ค๋ก ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์์ (ํ์๋ก ํ๋ ์์ ์ผ์ [Int] { var workDay: [Int] = [] var res: [Int] = [] var cnt = 0 for i in 0...progresses.count-1 { if (100 - progresses[i]) % speeds [i] == 0 ..

๋๊ธฐํ๊ณ ์๋ ํธ๋ญ์ ๋ํด์ ์์๋๋ก bridge์ ์ง์ ์ ์๋ํด์ผ ํ๋๋ฐ, ๊ทธ ์กฐ๊ฑด์ด ์ง๊ธ ๋ด๊ฐ(๋๊ธฐํ๋ ์ฒซ๋ฒ์งธ ํธ๋ญ) bridge์ ์ฌ๋ผ๊ฐ๋ ๋ฌด๊ฒ๋ฅผ ๊ฒฌ๋ ์ ์๋? ๋ฅผ ๋ง์กฑํด์ผ ํ๋ค. ๋ง์ฝ ๊ฒฌ๋ ์ ์๋ค๋ฉด ์๋ก์ด ํธ๋ญ์ ์ง์ ์ํค๊ณ , ๊ฒฌ๋ ์ ์๋ค๋ฉด ๋น์นธ์ ํ์นธ ๋ณด๋ธ๋ค. (๋ค๋ฆฌ๊ฐ ๊ฐ๋ ์ฐผ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์์ ์๋ ํธ๋ญ์ ํ์ถ์ํค๊ธฐ ์ํด ์ผ๋ง๋งํผ ์ด๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋น์นธ์ ๋ณด๋ด์ผ ํ๋ค.. ์ด๋ ๊ฒ ๋น์นธ์ ๋ณด๋ด์ฃผ์ง ์๊ณ ์ผ๋ง๋งํผ ์ด๋ํ๋์ง ์์น๋ฅผ ์๊ธฐ ์ํด์๋ ํธ๋ญ์ ๋ฌด๊ฒ์ ํ์ฌ์์น๋ฅผ Property๋ก ๊ฐ์ง๋ struct๋ฅผ ์์ฑํด์ผ ํ ๊ฒ๊ฐ๋ค..๐ญ) ๋์์ ์ด๋ ์งํ์๊ฐ์ 1์ด์ฉ ๋ํด์ค์ผ ํ๋ค. ์ด ๊ณผ์ ์ ๋๊ธฐํ๋ ํธ๋ญ์ด ์์ด์ง๋๊น์ง ๋ฐ๋ณต์์ผ์ค๋ค! import Foundation func solution(..

์๋๋.. ํฐ ์๊ฐ ์์ ์ฌ์๋ก ์ข์๊ฒ์ด์ฌ! ์ข์๊ฒ ์ข์๊ฒ์ด์ฌ! ๐ ๋ผ๋ ํ๋จ์ผ๋ก ์์ํ๋ค. k๊ฐ๋ฅผ ์ง์ด๋ค๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ number.count - k ์๋ฆฌ ์๋ก ๋ง๋ ๋ค๋ ๊ฒ์ด๋ค. ์ฃผ์ด์ง number์์ ๋ฑ์ฅํ๋ ์ซ์๋ฅผ Set์ผ๋ก ์ค๋ณต์ ๊ฑฐํ ํ์ ์ ๋ ฌํ๋ค๋ฉด, ๋ฑ์ฅํ๋ ์ซ์๋ค์์ ํฐ์๋ฅผ ์์๋๋ก ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ผ ๊ฐ์ฅ ํฐ ์๊ฐ number์์ ๋ฑ์ฅํ๋ ์ฒซ๋ฒ์งธ index๋ฅผ ์ฐพ๊ณ , ์ด ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ์ ๋ค์ด๊ฐ ์ ์์๊น? (๊ฒฐ๊ณผ๊ฐ์ ๋จ์ ์๋ฆฌ์๋ณด๋ค number์์ ์ด๊ฐ ๋ค์ ๋จ์ ์ซ์์ ๊ฐฏ์๊ฐ ๋ง์์ผํจ)๋ฅผ ์ฒดํฌํ ๋ค์.. ํ๋์ฉ ๋ฃ์ด์ฃผ๋ฉด ๋๊ฒ ๊ตฐ! ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ ๊ฐ์ฅ ํฐ ์์, number์์ ์ฒ์~ํฐ์๊ฐ ์กด์ฌํ๋ ์ธ๋ฑ์ค๊น์ง๋ฅผ ์ญ์ ํด์ค๋ค.(์ด์ ๊ฐ์ ํ์๋ ์์๋ฟ๋๋ฌ ํ์ ์๊ฐ๋ง ๋ฆ์ถค ใ ใ ) ์๋ฅผ๋ค์ด์.. "..