반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 모의고사 문제를 풀었습니다.
목차
Github
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42840
풀이
단순 구현 문제라 문제를 푸는 것은 쉬웠습니다.
다른 사람의 코드를 보고 딕셔너리를 왜 생각을 하지 못했을까 아쉬웠습니다.
제가 원래 생각한 코드에서 그분의 코드를 참고하여 리펙토링하였습니다. ㅠㅠ
전체 코드
import Foundation
func solution(_ answers:[Int]) -> [Int] {
var result: [Int] = []
let persons = [[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
let grades = [1: marking(persons[0], answers: answers),
2: marking(persons[1], answers: answers),
3: marking(persons[2], answers: answers)]
result = grades.sorted { $0.key < $1.key }
.filter { $0.value == grades.values.max() }
.map { $0.key }
return result
}
func marking(_ array: [Int], answers: [Int]) -> Int {
return (0..<answers.count).filter {
answers[$0] == array[$0 % array.count]
}.count
}
let answers = [1,3,2,4,2]
print(solution(answers))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형