Roel Notebook

[Swift]프로그래머스 체육복

by Roel Downey
728x90
반응형

체육복

 

문제 

- 문제 링크: 프로그래머스

 

 

풀이

func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
    var total = 0
    var reserveValue = reserve.sorted()
    var lostValue = lost.sorted()
    
    for index in 0..<lostValue.count {
        for value in 0..<reserveValue.count {
            if lostValue[index] == reserveValue[value] {
                lostValue[index] = 0
                reserveValue[value] = 0
                total += 1
                break
            }
        }
    }
    
    for index in 0..<lostValue.count {
        for value in 0..<reserveValue.count {
            if reserveValue[value] == 0 || lostValue[index] == 0 {
                continue
            }else if lostValue[index]-1 == reserveValue[value] || lostValue[index]+1 == reserveValue[value] {
                reserveValue[value] = 0
                total += 1
                break
            }
        }
    }
    
    return n - lost.count + total
}

solution(5, [2,4], [1,3,5])
solution(5, [2,4], [3])
solution(3, [3], [1])
solution(3, [1], [1,3])
solution(3, [2,3], [1])
solution(18, [7,8,11,12], [1,6,8,10])
solution(24, [12,13,16,17,19,20,21,22], [1,22,16,18,9,10])

solution(9, [2,4,7,8], [3,6,9])
solution(5, [2,4], [3,5])
// 5번과 12번 틀렸을때 이걸 해결했더니 완성 : 같은걸 먼저 빼지 않으면... 아래의 답은 5이다.
solution(5, [1,2], [2,3])

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기