Archive/Questions
[programmers/Swift] 모의고사
Marco
2022. 5. 10. 19:22
728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - 완전탐색 - 모의고사
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
Constraints :
- 시험은 최대 10,000 문제로 구성되어있습니다.
- 문제의 정답은 1, 2, 3, 4, 5중 하나입니다.
- 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.
//
// Created by Yongwoo Marco on 2022/05/08.
// Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//
func solution(_ answers:[Int]) -> [Int] {
var students = [1:0, 2:0, 3:0]
let first = [1, 2, 3, 4, 5]
let second = [2, 1, 2, 3, 2, 4, 2, 5]
let third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
answers.enumerated().forEach { (index, element) in
if( element == first[ index % 5]) { students[1]! += 1 }
if( element == second[index % 8]) { students[2]! += 1 }
if( element == third[ index % 10]) { students[3]! += 1 }
}
let max = students.values.max()!
return students.filter { $0.value == max }.sorted(by: <).map { $0.key }
}
print(solution([1,2,3,4,5])) // [1]
print(solution([1,3,2,4,2])) // [1,2,3]
How I tried this :
완전탐색이다 보니 문제를 한번만 돌도록 고민했음
인덱스를 이용해서 3명을 동시에 접근하는 방식으로 구현
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90