์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- ์๊ณ ๋ฆฌ์ฆ
- ์ด์งํ์
- SwiftUI
- ๋ธ๋ฃจํธํฌ์ค
- ๋นํธ์ฐ์ฐ์
- WebApp
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- WebView
- dp
- ๋ฐฑํธ๋ํน
- ์คํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐฑ์ค
- ์์
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- dfs
- BFS
- Swift
- ์ฝํ
- ๋ถํ ํ์
- ๋ถํ ์ ๋ณต
- Queue
- ๋์ ํฉ
- ios
- ๋ฌธ์์ด
- ๋ถํ ์ ๋ณต
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ์ฝ๋ฉํ ์คํธ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๊ด๋ฌผ ์บ๊ธฐ ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฑ๊ณต ํ์ด
import Foundation
func solution(_ picks:[Int], _ minerals:[String]) -> Int {
var arr = [[String]](), pick = picks, result = 0
var slice = picks.reduce(0,+) // ํ
์ผ8๋ฒ์ ์ํ.. ๊ณก๊ฐฑ์ด ์๋งํผ 5๊ฐ์ฉ ๋์ด์ค์ผ ํ๋ค.
for i in stride(from: 0, to: minerals.count, by: 5) { // ๊ด๋ฌผ 5๊ฐ์ฉ ๋์ด์ฃผ๊ธฐ
guard slice != 0 else { break }
if i+4 >= minerals.count { arr.append(Array(minerals[i...]))}
else { arr.append(Array(minerals[i...i+4]))}
slice -= 1
}
arr = arr.sorted { arr1, arr2 in // 5๊ฐ์ฉ ๋์ด์ค ๊ด๋ฌผ์ผ์ด์ค, ๊ฐ์น๊ฐ ๋์ ์์๋๋ก ์ ๋ ฌํ๊ธฐ
if arr1.filter({ $0=="diamond" }).count == arr2.filter({ $0=="diamond" }).count {
return arr1.filter { $0=="iron" }.count > arr2.filter { $0=="iron" }.count
} else {
return arr1.filter { $0=="diamond" }.count > arr2.filter { $0=="diamond" }.count
}
}
for mineral in arr { // ๊ณก๊ฐฑ์ด ๊ณจ๋ผ์ ๊ด๋ฌผ 5๊ฐ์ฉ ์์๋๋ก ์บ๊ธฐ
guard pick.reduce(0,+) != 0 else { break }
var pickax = -1, count = Int.max
for i in 0..<3 {
guard pick[i] != 0 else { continue }
let work = mineral.map {
if $0=="diamond" {
switch i {
case 0: return 1
case 1: return 5
default: return 25
}
} else if $0=="iron" {
switch i {
case 0: return 1
case 1: return 1
default: return 5
}
} else {
switch i {
case 0: return 1
case 1: return 1
default: return 1
}
}
}.reduce(0,+)
if count >= work { // ์ต์๋ก ์บ ์ ์์ ๋ ๊ทธ ๊ณก๊ดญ์ด ์ฌ์ฉ
pickax = i
count = work
}
}
print(pick)
pick[pickax] -= 1
result += count
}
print(pick)
return result
}
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์๊ฒฉ ์์คํ (0) | 2023.07.10 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ฌ๊ฐํ์ผ๋ก ๋ง๋ค๊ธฐ (0) | 2023.07.04 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ์นด๋ ๋๋๊ธฐ (0) | 2023.06.29 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ง๋ฒ์ ์๋ฆฌ๋ฒ ์ดํฐ (0) | 2023.06.27 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [3์ฐจ] ๋ฐฉ๊ธ๊ทธ๊ณก (0) | 2023.06.26 |