코틀린(Kotlin)/프로그래머스

[프로그래머스/코틀린(Kotlin)] 최소직사각형

초보왕보초 2023. 11. 20. 16:53
728x90

각각의 명함들의 가로길이와 세로 길이를 파악하여 지갑의 크기를 파악하기

예시)

 

풀이

  • min(), max() 이용하기
  • 명함을 회전할 수 있다는 것 이용하기

 

제출 코드

(코드 해석해 보기)

명함을 회전시킬 수 있으므로 가로길이(W)와 세로길이(H) 상관없이 최댓값을 구한다

그리고 각 행에서의 작은 수들 중에서 가장 큰 수를 곱해준다

(따지고 보면 maxW, maxH는 아닌..)

(for문에 i[0], i[1]을 비교하는 이유는 행첨자([])는 열단위로, i(포인터)는 행단위로 이동한다)

 

7) 2차원 배열 sizes의 1행부터 끝행까지 중 최댓값을 찾는다

(명함을 회전시킬 수 있으므로, 가로길이던 세로길이던 가장 큰 길이에 맞춰야 하므로)

8) 2차원 배열 sizes의 1행부터 각 행의 최솟값들을 구하고 그 중 최댓값을 받는다

(명함이 짧거나길거나, 이제 뚱뚱한 녀석만 고려하면 되니까)

 

 

 

 


 

 

 

import kotlin.math.* 를 쓰자

예전에 프로그래머스의 코틀린 버전은 maxOrNull(), minOrNull()로 써야 한다고 했었다

그래서 처음엔 그렇게 적었었는데 에러가 떴다..

그래서 그냥 min(), max()를 쓰기 위해 import kotlin.math.* 를 사용했다

나름 이 문제에 시간을 많이 써서 그냥 임포트 시키면 min(), max() 사용가능 하다고 하길래 그렇게 했다..

728x90