반응형
입력 & 출력
1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때,
가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.
풀이
정해진 패턴이 있으니 이를 먼저 선언하자
패턴에 맞게 수를 넣은 후 문제를 맞힐 경우 각자 점수를 더한다
2중 for문 보다 하나의 for문 효율이 좋으니
하나의 for문 안에 각 3가지 경우를 대입해서 푼다
Swift 전체 코드
let one = [1,2,3,4,5]
let two = [2,1,2,3,2,4,2,5]
let three = [3,3,1,1,2,2,4,4,5,5]
func solution(_ answers:[Int]) -> [Int] {
var array = Array(repeating: 0, count : 3)
var value = [Int]()
for i in 0..<answers.count {
if answers[i] == one[i % one.count] { array[0] += 1 }
if answers[i] == two[i % two.count] { array[1] += 1 }
if answers[i] == three[i % three.count] { array[2] += 1 }
}
for i in 0..<array.count {
if array[i] == array.max() {
value.append(i+1)
}
}
return value
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] DFS / BFS - 네트워크 (0) | 2021.04.01 |
---|---|
[프로그래머스] DFS / BFS - 타켓 넘버 (0) | 2021.04.01 |
[프로그래머스] 완전탐색 - 카펫 (0) | 2021.03.31 |
[프로그래머스] 정렬 - H-Index (0) | 2021.03.31 |
[프로그래머스] 정렬 - K번째 수 (0) | 2021.03.31 |