아요 개발 일기

[프로그래머스] Level 1. 최소직사각형 본문

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를 사용하는건 비슷한데 속도는 제 풀이가 확실히 빠르네요!!!