2022. 9. 29. 13:09ใํ๋ก๊ทธ๋๋จธ์ค-Swift
์์ ํ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42840
๋์ ํ์ด
cnt ๋ฐฐ์ด์ ํํ๋ก ๊ตฌ์ฑํด์ ์ธ๋ฑ์ค์ ์ ๊ทผํด ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
if๋ฌธ์ ๋ง์ด ์ฌ์ฉํ๊ณ ์ข ๋ณต์กํ๊ฒ ์ธ๋ฑ์ค์ ์ ๊ทผํ ๊ฒ ๊ฐ์์ ํ๊ณ ๋์๋ ๊ต์ฅํ ์ฐ์ฐํ๋ค..
import Foundation
func solution(_ answers:[Int]) -> [Int] {
let arrs = [
(1, [1, 2, 3, 4, 5]),
(2, [2, 1, 2, 3, 2, 4, 2, 5]),
(3, [3, 3, 1, 1, 2, 2, 4, 4, 5, 5])
]
var idx = 0
var cnts = [(Int, Int)](repeating: (0, 0), count: 4)
for i in 1..<4 {
cnts[i].0 = i
}
for arr in arrs {
answers.forEach { (num) in
if num == arr.1[idx] {
cnts[arr.0].1 += 1
}
idx += 1
if idx == arr.1.count {
idx = 0
}
}
idx = 0
}
cnts.remove(at: 0)
var max = 0
cnts.forEach { (cnt) in
if cnt.1 > max {
max = cnt.1
}
}
var fillArr = cnts.filter{ $0.1 == max }
if fillArr.count == 1{
return [fillArr[0].0]
} else {
return fillArr.sorted(by: {$0.0 < $1.0}).map{$0.0}
}
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํ ๊น๋ํ ํ์ด์ด๋ค.
๋ฐฐ์ด์์ ํํ์ ๋ฃ์๋ ๋์ ๋ฌ๋ฆฌ ์ด๋ฆ์๋ ํํ์ ๋ฐฐ์ด์ ๋ฃ๋ ๊ตฌ์กฐ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ๊ฐ์๋งํผ for๋ฌธ์ ๋๋ ๊ฒ์ด ์๋ ๋ฌธ์ ๋ฅผ ํ์ํ ๋๋ง๋ค ๊ฐ๊ฐ์ if๋ฌธ์ ์ฃผ์ด ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ ๊ธฐํ๋ค.
cnt๋ฐฐ์ด์ ์ฌ์ฉํ ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ๊ต์ฅํ ์ ์ฉํ ๊ฒ ๊ฐ๋ค๊ณ ๋๊ผ๋ค.
import Foundation
func solution(_ answers:[Int]) -> [Int] {
let answer = (
a: [1, 2, 3, 4, 5],
b: [2, 1, 2, 3, 2, 4, 2, 5],
c: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
)
var points = [1:0, 2:0, 3:0]
for (idx, val) in answers.enumerated() {
if val == answer.a[idx % 5] { points[1]! += 1}
if val == answer.b[idx % 8] { points[2]! += 1}
if val == answer.c[idx % 10] { points[3]! += 1}
}
return points.sorted(by: {$0.key < $1.key}).filter{ points.values.max() == $0.value }.map{$0.key}
}
ํผ๋๋ฐฑ
1. ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ๋ณต์กํ๋ค๊ณ ๋๋ ๋๋ ์๋ก์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํด๋ณด์.
2. ์ธ๋ฑ์ค๊ฐ ์ด๊ณผ๋๊ณ ์์ ์ผ๋ก ๋์์ฌ ๋๋ ๋๋จธ์ง ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ํธ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
3. ๋์ ๋๋ฆฌ.values.max()๋ฅผ ํ๊ฒ ๋๋ฉด value์ ํด๋นํ๋ max๊ฐ์ด ์ถ์ถ๋๋ค.
4. ๋์ ๋๋ฆฌ์์ ๊ฐ[key]๋ก ์ ๊ทผํ๋ฉด ์ต์ ๋์ด ๋์ค๊ธฐ ๋๋ฌธ์ ์ธ๋ํํ ์ํ๋ก ๊ตฌํํด์ผํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ๊ฒ์(Swift) (0) | 2022.10.01 |
---|---|
์คํจ์จ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.09.30 |
2016๋ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.09.28 |
K๋ฒ์งธ ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.09.28 |
๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.09.28 |