181112_(月) - PassionOfStudy/Algorithm GitHub Wiki
Programmers_(Remove the Smallest Number)
Remove the Smallest Number
제일 작은 수 제거하기My Solution
배열에서 제일 작은 수를 찾는 것이 문제의 핵심이다.
먼저 입력받은 배열의 요소가 1개이면 -1의 Int형 배열을 리턴해야하므로 if arr.count == 1 { return [-1] }
로 시작한다.
다음으로 제일 작은 수를 찾기 위해서 생각한 방법은 입력받은 배열 arr을 sorted(by:)
메서드를 이용하여 내림차순으로 정렬한 후에 마지막의 값이 제일 작으므로 마지막 인덱스의 값을 minimumValue라는 변수에 저장한다. 그리고 기존의 배열에서 제일 작은 수의 인덱스를 indexPosition변수에 저장한 후 remove(at:)
메서드를 이용하여 제거하고 제거한 결과 배열을 리턴하였다.
Other Solution
제일 작은 수의 인덱스를 찾는 과정에서 for루프를 돌면서 min이라는 변수에 저장하면서 찾아가는 풀이가 마음에 들었다.
for i in 0..<arr.count {
if min > arr[i] {
index = i
min = arr[i]
}
}
처음에 코드를 읽어보면서 와닿지 않아서 알고리즘 디버깅표를 직접 적어가면서 분석했더니 이해가 되었다. 디버깅표를 이용하도록 노력해야겠다.
% 개인적으로 로직을 풀어서 코딩한 풀이가 마음에 들었다. 물론 적절한 메서드를 사용하여 코드를 간결하게 작성한 풀이를 보면서 배울게 많았다. filter, guard구문 또는 if let구문을 이용해서 optional값을 적절하게 처리하는 것을 보고 나도 강제로 옵셔널값을 처리하는 것을 지양해야겠다고 생각했다.