[Algorithm] Search Insert Position
오랜만에 풀어보는 릿코드 문제~~
문제 설명
주어진 배열과 target을 가지고 target이 배열의 몇 번째 인덱스에 있는지 확인하는 문제. 단 배열은 오름차순으로 정렬이 되어있고 target이 배열에 없는 경우 배열에 넣은 뒤 그 배열에서 몇 번째 인덱스에 있는지 리턴해야 한다.
easy라 그런지 금방 풀리는 문제였다.
푼 방법
swift에서 제공하는 메서드를 이용해서 풀었다. 우선 firstIndex를 가지고 target이 배열에 있는지 확인 후 있으면 그대로 반환, 없으면 배열에 넣은 뒤 sort()를 통해 오름차순 정렬 후 다시 한 번 firstIndex를 통해 값을 찾았다.
func searchInsert(_ nums: [Int], _ target: Int) -> Int {
guard let index = nums.firstIndex(of: target) else {
var newNums = nums
newNums.append(target)
newNums = newNums.sorted()
return newNums.firstIndex(of: target)!
}
return index
}
Leave a comment