코딩테스트 입문
Day 5 - 2023.01.05
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미한다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7이다. 정수 배열 array
가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성하라.
array
의 원소의 갯수는 홀수이다.array
의 원소의 갯수는 0보다 크고 100보다 작다.array
의 원소의 크기는 -1,000보다 크고 1000보다 작다.중앙값 구하기.swift
import Foundation
func solution(_ array:[Int]) -> Int {
// 제한 사항
guard (1...100 ~= array.count), (array.count % 2 == 1) else {
return 0
}
// 문제 풀이
let sortedArray = array.sorted()
return sortedArray[sortedArray.count / 2]
}
먼저 제한 사항은 guard문을 이용하여 array
의 원소 갯수 조건을 만들어 주었다.
문제 풀이에서는 swift의 내장함수 sorted()를 이용하여 정렬하여 sortedArray
상수에 넣어주었고, sortedArray
의 원소 개수의 반을 나눠 중앙값을 찾았다. (인덱스가 1부터 시작이라면: 원소의 갯수 / 2 + 1
이겠지만 인덱스가 0부터 시작하기 때문에 원소의 갯수 / 2
로 중앙 값의 인덱스를 찾아 줄 수 있었다.)
sort는 원본 배열을 오름차순으로 정렬한다.
sorted는 원본 배열은 그대로 두고, 사본을 만들어 오름차순으로 정렬한다.
// sort() 사용
var arraySort = [1, 4, 2, 3, 5]
arraySort.sort()
print(array) // [1, 2, 3, 4, 5]
// sorted() 사용
var arraySorted = [1, 4, 2, 3, 5]
var arrayCopi = arraySorted.sorted()
print(arraySorted) // [1, 4, 2, 3, 5]
print(arrayCopi) // [1, 2, 3, 4, 5]
문제 풀이에서 sort()를 사용하고자 했다면 sortedArray 상수를 만들지 않고 받아온 array에 array.sort()
로 사용이 가능했다.