티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/83201

 

코딩테스트 연습 - 2주차_상호평가

[[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD"

programmers.co.kr

 

import Foundation

func solution(_ scores:[[Int]]) -> String {
    
    let n = scores.count
    var answer = ""
    for j in 0..<n {
        var score = 0
        var array: [Int] = []
        var count = 0
        for i in 0..<n {
            array.append(scores[i][j])
            score += scores[i][j]
            if scores[j][j] == scores[i][j] { count += 1 }
        }
        array = array.sorted()
        if count == 1 && (array.first! == scores[j][j] || array.last! == scores[j][j]) {
            answer.append(grade(of: (score-scores[j][j])/(n-1)))
        } else {
            answer.append(grade(of: score/(n)))
        }
        
    }
    
    return answer
}

func grade(of score: Int) -> String {
    switch score {
    case 90...100:
        return "A"
    case 80..<90:
        return "B"
    case 70..<80:
        return "C"
    case 50..<70:
        return "D"
    default:
        return "F"
    }
}
댓글