์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Encodable
- Filter
- Figma
- DispatchQueue
- components
- Core Data
- Mac
- SWiFT
- ์ง๋ฒ๋ณํ
- Firestore CRUD
- UIRefreshController
- ์ฑ๋ง๋ค๊ธฐ
- String.Index
- CRUD
- ์๊ณ ๋ฆฌ์ฆ
- Cloud Firestore
- Firestore
- ExpressJS
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฑ๋์์ธ
- MongoDB
- Codable
- Reduce
- mongoose
- RxSwift
- nodejs
- ios
- AVAudioPlayer
- map
- Decodable
- Today
- Total
Focus On Develop ๐ค๐ค
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ ๋ณธ๋ฌธ
<๋ฌธ์ >
<์ ๋ต์ง๊ธฐ>
"numbers๋ฅผ ์ญ ์ด์ด๋ถ์ฌ์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋๋ ค๋ฉด, ์ ์ผ ์์๋ฆฌ์ ์ ์ผ ํฐ ์๊ฐ ๋ค์ด์ค๋ฉด๋๋ค" ๋ผ๋ ์ ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ํ๋ค. ์.. ๊ทผ๋ฐ ์์์ 2๋ฒ์ผ์ด์ค๋ฅผ ๋ณด๋ฉด 3, 30, 34 ์ด๋ ๊ฒ ํฌํจ๋์ด ์๋๋ฐ ์์๋ฆฌ๊ฐ ๋ชจ๋ 3์ด๋ฉด ์ด๋ป๊ฒ ํ์ง? ์ด ๋ถ๋ถ์ ๊ณ ๋ฏผํ๋๊ฒ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๊ฒ ๊ฐ๋ค. 3์ด 34๋ณด๋ค๋ ๋ค์, 30๋ณด๋ค๋ ์์ ์์ด์ผ ๊ฐ์ฅ ํฐ ์๊ฐ ๋์ค๋๋ฐ, (์๋ฆฟ์๊ฐ ๊ฐ๋ค๋ฉด ๊ทธ๋ฅ ์ ๋ ฌํ๋ฉด ๋๋๋ฐ, ์๋ฆฟ์๊ฐ ๋ค๋ฅด๋ฉด ๋น๊ต๊ฐ ์ด๋ ต๋ค.) ์ค์ ๋ก ๋ด๊ฐ ๋น๊ตํ ํ๋์ 3์ 3๊ณผ, 30์ 0์ค ์ด๋ค๊ฒ ๋ ํฐ๊ฐ์? ๋ผ๊ณ ์์ ๋ ๊ฒ ๊ฐ๋ค. ๊ทผ๋ฐ ์๋ฆฟ์๊ฐ ๊ธธ๊ณ ๋น๊ตํด์ผ ํ ๊ฒ ๋ง๋ค๋ฉด..??? ๊ทธ๋ฐ ๊ฒฝ์ฐ๋, ์ ๋ ฅ๋ฐ์ ์๋ฅผ String์ผ๋ก ๋ณํํ์ฌ ๋น๊ต๋ฅผ ํด์ผํ๋๋ฐ.. ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ์์๊ฐ ์ต๋ 1000 ์ดํ๋ก ์ฃผ์ด์ง๋, ๋ง์ฝ 1์๋ฆฌ์๋ก ์ฃผ์ด์ง๋๋ผ๋ ์ต๋ 4ํ๋ฅผ ๋ฐ๋ณตํ๋ฉด 4์๋ฆฌ์๊ฐ ๋์ค๊ณ , ์ด๋ค๊ฒ ๋ ์์ผ๋ก ์์ผํ๋์ง ๋น๊ต๊ฐ ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค. ์๋ฅผ ๋ค์ด์ 3333 (3์ 4ํ๋ฐ๋ณต) ๊ณผ, 30303030(30์ 4ํ๋ฐ๋ณต) ์ ๋น๊ตํ์๋ String์ผ๋ก ๋น๊ตํ๋ฉด 3333์ด ๋ ํฌ๋ค๊ณ ํ๋จํ๊ฒ ๋๋ค. ์ด๋ฐ์์ผ๋ก ๋ชจ๋ ์์๋ฅผ 4ํ์ฉ ๋ฐ๋ณตํด์ฃผ๊ณ ์ ๋ ฌํ ๋ค์, ๋ค์ ์๋ ์์๋ก ๋๋๋ ค ๋๊ธฐ๋ง ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
<์ฝ๋>
import Foundation
func solution(_ numbers:[Int]) -> String {
let fourTimes = numbers.map { String($0) }.map { $0+$0+$0+$0 }
let sortedFourTimes = fourTimes.sorted(by: >)
let oneTimes = sortedFourTimes.map { $0[...$0.index($0.startIndex, offsetBy: $0.count/4 - 1)] }
return oneTimes.joined().hasPrefix("00") ? "0" : oneTimes.joined()
}
<Lesson Learned>
์.. ์์งํ string์ 4ํ ๋ฐ๋ณต์ ์ด๋ป๊ฒ ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ด์ 4๋ฒ ๋ํด๋ฒ๋ฆผ.. ^^ ๐ ใ ใ ใ ๊ทธ๋ ๊ฒ ํ๋๋ฐ ๊ฒฐ๊ตญ์ ๋ง์ง๋ง ํ ์คํธ ์ผ์ด์ค๋ฅผ ์คํจํ๋ค. ์ด๋ด๋๋ ๋ณดํต ๊ฒฝ๊ณ์ ์ ์๋ ๊ฒ๋ค์ ์๊ฐํด๋ณด๋ฉด ๋๋๋ฐ.. ๋คํํ๋ ์ด ์๊ณ ๋ฆฌ์ฆ์์ ๋์ถํ ์ ์๋ ์์ธ ์ผ์ด์ค๋ฅผ ๋ฐ๋ก ์ฐพ์๋ค. ๋ฐ๋ก... [0,0,..] ์ด๋ฐ์์ผ๋ก 0๋ง์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ด ๋ค์ด์ค๋ฉด, "00" ๋๋ "000" ๋ฑ์ ๊ฐ์ด ๋ฆฌํด๋๋๋ฐ, ์ค์ ๋ก๋ "0"์ด ๋์ด์ผ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋ง์ง๋ง์ "00"์ผ๋ก ์์ํ๋ฉด "0"๋ง ๋ฆฌํดํ๋ผ๋ ์กฐ๊ฑด์ ์ถ๊ฐํด ์ค ๋ค์ Pass! ๐
์ค๋๋ ์ญ์ ๋ค๋ฅธ์ฌ๋์ ํ์ด์ ์ข์ ์ฝ๋๊ฐ ์์ด์ ๊ณต์ ํ๋ค! ๋๋ ๋ฐ๋ก๋ ๋ญ๊ฐ ๋ ํฐ์ง ๋น๊ต๊ฐ ์๋๋ค๊ณ ์๊ฐํด์ 4ํ์ฉ ๋ฐ๋ณตํด์ฃผ๊ณ string ๋น๊ต๋ฅผ ํด์ฃผ์๋๋ฐ.. ์๋ ์ฝ๋์์๋ ์ ๋ ฌํ ๋ ๋ฐ๋ก string์ผ๋ก ํฉ์ณ์ Int๋ก ๋น๊ตํ ๊ฒฐ๊ณผ๋ก ์ ์ฅํ๋ค.. ใ ใ ์๋ฅผ ๋ค์ด์ 3, 30์ด ์์๋ "303"๊ณผ "330" ์ค ์ซ์๋ก ๋น๊ตํ์๋ ๋ญ๊ฐ ๋ ์ปค? ๋ผ๋ ์์ผ๋ก..ใ ใ ์ด๊ฑฐ๋ sorted๋ฅผ ํ์ฅํด์ ์ฌ์ฉํ๋ ๊ฑธ๋ก, ๋ค์ํ๊ฒ ์ฐ์ผ ์ ์์ ๊ฒ ๊ฐ์ ๊ฒ์ ์์ง๋ง์!
let sortedNumbers = numbers.sorted {
Int("\($0)\($1)")! > Int("\($1)\($0)")!
}
์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉ๋ map์ด ๊ถ๊ธํ๋ค๋ฉด?? ๐ 2020/12/15 - [iOS [Swift]/๊ธฐ์ด๋ฅผ ํํํ!] - [Swift] map, filter, reduce
์ถ์ : ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ํฐ ์
'iOS [Swift] > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2021.02.16 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (0) | 2021.01.05 |
[ํ๋ก๊ทธ๋๋จธ์ค] H-Index (0) | 2020.12.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2020.12.27 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2020.12.27 |