프로그래머스 - 최소직사각형

Lee·2022년 1월 18일
0

알고리즘

목록 보기
9/24

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int max_w = 0; //가장 큰 width를 저장할 변수
        int max_h = 0; //가장 큰 height를 저장할 변수
        for (int[] size : sizes) {	//for each문을 이용해 순회
            max_w = Math.max(Math.max(size[0], size[1]), max_w);
            // size배열의 큰 값과 max_w의 값 중 더 큰값을 저장
            max_h = Math.max(Math.min(size[0], size[1]), max_h);
            // size배열의 작은 값과 max_w의 값 중 더 큰값을 저장
        }
        answer = max_w * max_h;	//넓이를 계산
        return answer;
    }
}

정리

명함이 90도 회전이 가능
width에 size배열의 큰 값들을 비교하고 그 중 가장 큰 값을 찾는다. height에 size배열의 작은 값을 넣은 후 그 중 가장 큰 값을 찾는다.
구한 값들로 넓이를 계산하면 모든 명함이 들어가는 가장 작은 넓이이다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글