Algorithms/문제 풀이
[프로그래머스] Level 1. 최소직사각형
김망복
2023. 1. 17. 10:29
문제
풀이
minNum 부분이 조금 헷갈려서 다른 풀이글을 참고했습니다!
변수 maxNum, minNum을 만들고, for-in문을 통해서 내부의 배열 값을 받습니다.
maxNum에는 배열의 i 값들 중 큰 값과 maxNum을 비교 후 큰 값을 넣어주고,
minNum에는 배열의 i 값들 중 작은 값과 minNum을 비교 후 큰 값을 넣어줍니다.
그 후, 변수 두개를 곱해주면 끝!
좋은 풀이
func solution(_ sizes:[[Int]]) -> Int {
let sorted = sizes.map{$0.sorted()}
return sorted.map{$0[0]}.max()! * sorted.map{$0[1]}.max()!
}
이 풀이는 고차 함수 map을 많이 사용했네요?
일단 sorted 상수에 sizes 배열을 정렬하여 저장해줍니다.
그 후, 2차원 배열인 sorted 값의 첫번째 값 중 큰 값과 두번째 값 중 큰 값을 곱해주고 리턴해줍니다.
정확성 테스트
Cpu를 사용하는건 비슷한데 속도는 제 풀이가 확실히 빠르네요!!!