[Swift] 모의고사 - 프로그래머스 Lv 1
Swift로 프로그래머스 모의고사 문제를 해결하며 얻은 지식을 정리합니다.
풀이
import Foundation
func solution(_ answers:[Int]) -> [Int] {
let givenUps = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
]
var scores:[Int: Int] = [1: 0, 2: 0, 3: 0]
for (i, givenUp) in givenUps.enumerated() {
for (j, answer) in answers.enumerated() {
if answer == givenUp[j % givenUp.count] {
scores[i + 1]! += 1
}
}
}
return scores.filter { $0.value == scores.values.max() }.keys.sorted()
}
고찰
문제는 enumerated()
를 이용하여 index와 value를 얻는 방식으로 해결하였지만, 제출 당시에는 하나의 테스트 케이스에서 시간 초과가 발생했었다. 현재는 지속적으로 제출하여도 문제 없어보인다.
사용한 개념
- Dictionary - keys and values
- enumerated() - Apple Developer
Author And Source
이 문제에 관하여([Swift] 모의고사 - 프로그래머스 Lv 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ryan-son/Swift-모의고사-프로그래머스-Lv-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)