728x90
    
    
  프로그래머스 체육복
우선 여벌이 있는 학생의 도난을 제거해서, 배열을 정렬한 뒤 도난과 여벌 배열 비교해서 처리했습니다.
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
    var lost = lost
    var reserve = reserve
    
    // 여벌 있는 학생 도난 제거
    lost.map { number in
        if reserve.contains(number) {
            lost.removeAll {
                $0 == number
            }
            reserve.removeAll {
                $0 == number
            }
        }
    }
    
    // 배열 정렬
    lost.sort(by: <)
    reserve.sort(by: <)
    
    return lost.reduce(n) { partialResult, number in
        if reserve.contains(number - 1) {
            reserve.removeAll {
                $0 == (number - 1)
            }
            
            return partialResult
        }
        else if reserve.contains(number + 1) {
            reserve.removeAll {
                $0 == (number + 1)
            }
            
            return partialResult
        }
        
        return partialResult - 1
    }
}728x90
    
    
  'Algorithm' 카테고리의 다른 글
| SwiftUI: 문자열 나누기 (1) | 2024.03.07 | 
|---|---|
| SwiftUI: 숫자 짝꿍 (0) | 2024.03.07 | 
| SwiftUI: 가장 많이 받은 선물 (1) | 2024.02.05 | 
| SwiftUI: 크레인 인형뽑기 게임 (1) | 2023.12.18 | 
| SwiftUI: [카카오 인턴] 키패드 누르기 (1) | 2023.12.18 |