반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - K번째수 문제를 풀었습니다.
목차
Github
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42748
풀이
어렵지 않은 단순 구현과 정렬 문제입니다.
Swift에는 정렬 함수와 배열 Slice가 되기 때문에 간편하게 풀 수 있었습니다.
배열을 Slice하는 기능을 다시 한 번 생각해봤던 문제였습니다.
해당 문제는 고차 함수인 map으로도 풀어봤습니다.
아직까진 반복문이 먼저 떠오르지만 점차 익숙해졌으면 좋겠네요.
전체 코드
import Foundation
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
var result: [Int] = []
// for command in commands {
// let sortedArray = array[command[0]-1 ... command[1]-1].sorted()
// result.append(sortedArray[command[2]-1])
// }
result = commands.map {
((array[$0[0]-1 ... $0[1]-1]).sorted())[$0[2]-1]
}
return result
}
let array = [1, 5, 2, 6, 3, 7, 4]
let commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
print(solution(array, commands))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형