99클럽 코테 스터디 9일차 TIL + max, min

Boxx-Ham·2024년 5월 28일
0

99TIL

목록 보기
1/19
post-thumbnail

1. 오늘의 문제

최소직사각형

2. 문제 분석

  • sizes : 명함의 가로, 세로 길이가 들어있는 2차원 배열
    • sizes의 원소 : [w, h] 형식
    • w : 명함의 가로 길이
    • h : 명함의 세로 길이
    • w와 h : 1 이상 1,000 이하의 자연수

  • 입출력 예시
sizesresult
[[60, 50], [30, 70], [60, 30], [80, 40]]4000
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]120
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]]133

3. 문제 풀이

  1. sizes의 각 요소마다 큰 값을 w, 작은 값을 h에 둬야 함.
  2. Math.max, Math.min 사용해서 wMax, hMax를 찾아내야 함.
  3. answer 변수에 wMax와 hMax를 곱한 값을 대입 후 리턴

4. 구현 코드

class Solution {
	public int solution(int[][] sizes){
    	int solution = 0;
  		// 규칙 : w > h
        // 1.    60  50
        // 2.    30  70 -> 70, 30으로 바꿔야 함.
        // 3.    60  30
        // 4.    80  40
        
        // wMax, hMax를 선언
        int wMax = 0, hMax = 0;
        
        for (int[] rectangle : sizes) {
        // rectangle[0]이랑 rectangle[1]이랑 비교해서
        //큰 값을 wMax랑 다시 비교해서 가장 큰 w값을 찾아야함
        wMax = Math.max(wMax, Math.max(rectangle[0], rectangle[1]));
        // 그럼 작은 값이 자연스럽게 h가 됨 그 중 가장 큰 값을 찾아야 함
        hMax = Math.max(hMax, Math.min(rectangle[0], rectangle[1]));
        }
        soultion = wMax * hMax;
        return solution;
    }
}

5. 오늘의 회고

  • Math.max, Math.min 메소드를 통해 문제를 쉽게 정리할 수 있었다.
  • 확실히 계속해서 문제를 풀어나가다 보니 규칙을 찾거나 알고리즘을 찾는 일에 좀 더 편해진 것 같다.
  • 권장 시간 30분인데 26분 23초로 조금 아슬아슬하게 풀었지만 한 번에 오류 없이 잘 마무리할 수 있어서 좋았다.

#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL

0개의 댓글