쉽긴한데 적절한 STL이 떠오르지 않아서 남의 코드를 검색해봤더니...

와우.. 3줄 만에 끝이 나버렸다. 

덕분에 알게 된 것도 3개씩이나 !!

 

배열.remove(at: index)는 배열의 index를 제거.

배열.min()은 가장 작은 comparable 원소를 가지고 있는 녀석을 반환.

배열.index(of: )는 특정 요소의 인덱스를 리턴.

 

남의 정답 코드:

func solution(_ arr:[Int]) -> [Int] {
    var answer = arr
    answer.remove(at:answer.index(of:arr.min()!)!)
    return answer.isEmpty ? [-1] : answer
}

 

 

내가 푼 코드: 

func solution(_ arr:[Int]) -> [Int] {
    
    if arr.count <= 1 {
        return [-1]
    }
    var min: Int = 2147483647
    var minIndex:Int = 0
    for (index, element) in arr.enumerated() {
        if min > element {
            min = element
            minIndex = index
        }
    }
    
    var answer = [Int]()
    for i in arr.indices {
        if i != minIndex {
            answer.append(arr[i])
        }
    }
    
    return answer
}

 

 

내가 푼 코드의 실행 결과

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom