이번의 easy 문제는 배열에서 주어진 숫자를 지우는 것.
정렬도 상관할 필요 없다. 검증에서 정렬 후 사용하기 때문에 주어진 숫자를 지우기만 하면 됐다.
검증 예시를 보면 removeElement를 호출한 뒤 배열의 길이를 검사한 후 sort로 배열을 정렬한다. 그 이후 정답을 확인하니 무조건 주어진 숫자만 지우면 끝.
처음에 문제 설명 안읽고 예제만 봤는데 ouput의 nums에 배열 순서가 바뀌었길래 읭?? 스러워서 다시 문제부터 읽고 내려왔다.
문제를 이해하고 나니 코드는 아주 간단하게 구현할 수 있는 문제였다.
func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
nums = nums.filter { $0 != val }
return nums.count
}
filter를 사용해서 (map, compactMap, filter, reduce는 진짜 알아두면 유용한것같음) 주어진 숫자인 val과 다른 숫자들을 nums로부터 걸러냈다. 그 후 nums.count를 반환하면 끝!
return에서 바로 연산처리해도 되겠지만 예전에 사수님께서 return에서 연산하는 게 성능상 안좋다고 얘기하셨던 기억이 난다. return에서는 return만. (그러면 num.count도 들어가면 안됐으려나..?)
반응형