본문 바로가기
알고리즘

2023-04-26 최소직사각형

by jung1911 2023. 4. 26.

 

 

문제

 

 

 

 

 

 

 

 

 

시도

 

  • 문제에서 무엇을 원하는지 전혀 몰랐지만 입출력 예 설명을보고 대강 유추는 가능했다. 
  • 첫 번째로 가로의 값은 최대 값을 구해야하고 두 번째는 세로의 작은 값중 큰값을 구해 가로와 세로를 곱해주는거다.

 

sizes = [[60, 50], [30, 70], [60, 30], [80, 40]]
def solution(sizes):
    a = 0   
    w = 0 # 초기값! 비교하기 위함이다 #0, max 60
    h = 0
    for i in sizes:
        w = max(w,max(i)) #max(w, 60 70 60 80)w는 0 여기서 0,60 을 비교해서 60이라는 값을 도출함. 
        print(w) 
        h = max(h,min(i)) #max(h, 50 30 30 40)  동문
    a = w * h
    return a
solution(sizes)

 

 

 

해결

 

최소 값의 작은 값중에 큰 값을 어떻게 찾아야하는지 고민을 많이 했다. if를 줘야할지 min을 사용해야할지 일단 내가 알고있는 것 만으로는 못풀거 같아서 검색을 통해 다른 함수들을 공부하다보니 min을 먼저 구하고 max를 사용해서 최소 값의 큰 값을 구할 수 있는 방법을 알았다.  

 

 

 

배운점

 

w =0 , h = 0 이부분은 if문의 초기 값을 할 때 주로 사용해봤는데 for 문에서 처음 사용할땐 다른 사람한테 설명하는 부분이 어려웠다. [] , '' 이런 느낌으로 값을 넣어준다라고 설명은 했지만 아직 제대로 이해를 못한 부분때문에 좀 더알아보니깐 비교하는 거라고 이해했다.