μμ νμ - νλ‘κ·Έλλ¨Έμ€(Swift)
μμ νμ - νλ‘κ·Έλλ¨Έμ€(Swift)
λ¬Έμ μ€λͺ
https://school.programmers.co.kr/learn/courses/30/lessons/42840
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ 맀μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
λμ νμ΄
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]λ‘ μ κ·Όνλ©΄ μ΅μ λμ΄ λμ€κΈ° λλ¬Έμ μΈλνν μνλ‘ κ΅¬νν΄μΌνλ€.