[Algorithm] 프로그래머스 로또의 최고 순위와 최저 순위
Updated:
문제 설명
나의 풀이
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
var rank = [6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6]
var lottosCopy = lottos
lottosCopy.sort()
var win_numsCopy = win_nums
win_numsCopy.sort()
var count = 0
var zeroCount = 0
for num in lottosCopy {
if num == 0 {
zeroCount += 1
}
if win_numsCopy.contains(num) {
count += 1
}
}
var maxCount = zeroCount + count
var minCount = count
var answer = [rank[maxCount]!, rank[minCount]!]
return answer
}
괜찮은 남의 풀의
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
let zeroCount = lottos.filter { $0 == 0}.count
let winCount: Int = win_nums.filter { lottos.contains($0) }.count
return [min(7-winCount-zeroCount,6), min(7-winCount,6)]
}
filter를 좀 더 사용해보도록 노력해보자..
Leave a comment