문제
내 정답 코드
import Foundation
func solution(_ rank:[Int], _ attendance:[Bool]) -> Int {
var students:[Student] = []
(0..<rank.count).map { students.append(Student(index: $0, rank: rank[$0], attendance: attendance[$0])) }
let sortStudents = students.sorted(by: {$0.rank < $1.rank}).filter { $0.attendance == true }
let (a, b, c) = (sortStudents[0].index, sortStudents[1].index, sortStudents[2].index)
return 10000*a + 100*b + c
}
struct Student {
let index: Int
let rank: Int
let attendance: Bool
init(index: Int, rank: Int, attendance: Bool) {
self.index = index
self.rank = rank
self.attendance = attendance
}
}
#
1. index, rank, attence속성을 갖는 Student구조체를 만들어 사용하였다.
2. 모든 학생의 객체를 students에 append해주었다.
3. rank로 정렬을 해주고 filter로 attendance가 true인 학생만 남긴 배열을 새로 만들어 주었다.
4. 새로운 배열의 index값을 a, b, c로 지정해주고 문제 해결에 맞는 식으로 값을 반환하였다.
배운 기술
1. sorted(by: )
https://developer.apple.com/documentation/swift/array/sorted(by:)
'프로그래머스 (Swift) > 기초' 카테고리의 다른 글
[Day21-4] 문자열 정수의 합 (0) | 2024.05.12 |
---|---|
[Day21-3] 정수 부분 (0) | 2024.05.12 |
[Day21-1] 뒤에서 5등 위로 (0) | 2024.05.11 |
[Day20-5] 뒤에서 5등까지 (0) | 2024.05.11 |
[Day20-4] 배열의 길이에 따라 다른 연산하기 (0) | 2024.05.11 |