반응형

안녕하세요. 개발 중인 정주입니다.

 

오늘은 프로그래머스 - 최소직사각형 문제를 풀었습니다.

 


목차


    Github

     

    GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘

    스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.

    github.com

     

    문제 링크

    https://programmers.co.kr/learn/courses/30/lessons/86491

     

    코딩테스트 연습 - 최소직사각형

    [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

    programmers.co.kr

     


    풀이

    너비에 최대값을, 높이에 최소값을 배치하고 모든 너비 중 최대값, 모든 높이 중 최대값을 곱하여 면적을 구하며 됩니다.

     

    처음에는 삼항 연산자를 이용했는데요.

    풀고 나니 min(), max()가 있는데 왜 삼항 연산자를 썼을까 어이가 없더라고요.

     

    적절한 메서드가 떠오르도록 연습을 해야겠습니다.

     


    전체 코드

    
          
    import Foundation
    func solution(_ sizes:[[Int]]) -> Int {
    var width = 0, height = 0
    sizes.forEach {
    width = max(width, $0.max()!)
    height = max(height, $0.min()!)
    }
    return width * height
    }
    let sizes = [[60, 50], [30, 70], [60, 30], [80, 40]]
    print(solution(sizes))

    아직은 초보 개발자입니다.

    더 효율적인 코드 훈수 환영합니다!

    공감 댓글 부탁드립니다.

     

     

    반응형
    유정주