반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 모의고사 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
풀이
단순 구현 문제라 문제를 푸는 것은 쉬웠습니다.
다른 사람의 코드를 보고 딕셔너리를 왜 생각을 하지 못했을까 아쉬웠습니다.
제가 원래 생각한 코드에서 그분의 코드를 참고하여 리펙토링하였습니다. ㅠㅠ
전체 코드
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))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형