emovie
우당탕 개발 💭
emovie
전체 방문자
오늘
어제
  • ALL (42)
    • Java (6)
    • DB,SQL (3)
    • Network (1)
    • DevOps (1)
      • Docker (1)
    • Git (2)
    • Algorithm (8)
    • Design Pattern (2)
    • Data Structure (2)
    • Software Engineering (1)
    • Issue (4)
    • Book (3)
    • TIL (3)
    • Work Experience (2)
    • Conference (1)
    • 회고 (1)
    • 모음 (2)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 위클리챌린지
    • axios POST 403 Forbidden Error
    • 시스템테스트
    • Git
    • java
    • IT서적
    • Jpub
    • fmt:parseDate
    • DesignPattern
    • TIL
    • IT서적리뷰
    • ApacheAirflow
    • git history 정리
    • 프로그래머스
    • 자료구조
    • 책
    • 프로그래머의뇌
    • 회고
    • context root
    • 제이펍전문서리뷰어2기
    • 제이펍
    • AWS로시작하는인프라구축의정석
    • ApacheAirflow기반의데이터파이프라인
    • 책리뷰
    • Issue
    • It
    • parseLocale
    • 자바
    • MSSQL
    • server path

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    emovie

    우당탕 개발 💭

    Algorithm

    [ 프로그래머스 ] 위클리 챌린지(21.10) 8주차 최소직사각형

    2021. 10. 7. 01:21
    class Solution {
        public int solution(int[][] sizes) {
            int answer = 0;
            int width = 0;
    		int height = 0;
            
            for(int i = 0;i < sizes.length; i++) {
    			int max = (sizes[i][0] >= sizes[i][1] ? sizes[i][0] : sizes[i][1]);
    			int min = (sizes[i][1] >= sizes[i][0] ? sizes[i][0] : sizes[i][1]);
    			
    			width = (max > width ? max : width);
    			if(min >= width) 	  height = min;
    			else if(min > height) height = min;
    		}
            
            answer = width * height;
            
            return answer;
        }
    }

    📝 해결

    ! 풀이 순서
    1. 가로, 세로의 변수인 width, height를 생성한다.
    2. 배열의 요소는 2개만 제공하기 때문에 sizes의 개수만큼만 반복한다.
    3. max는 2개의 요소 중 큰 값을 가진다.
       min은 2개의 요소 중 작은 값을 가진다.
    4. width는 가장 큰 값을 가진다. max와 비교하여 저장하도록 한다.
    5. height는 width보다 같거나 작아야 한다. 그리고 max보다 작거나 같고 min보다 크거나 같아야 한다.
       width >= max >= height >= min
       정리하면 이런 식을 가진다.
       min은 절대 width와 height보다 클 수는 없기 때문에 min이 크다면 height에 저장되도록 한다.
    6. 반복이 종료되고 width와 height를 곱한 값을 answer에 저장한다.

    제공된 예제 배열을 보고 최대 수의 짝꿍이 되는 수보다 1단계 더 큰 수가 height가 될 것 같다고 생각하고 시뮬레이션을 해보니 두 수가 max 수를 가지는 경우에서 막힌다는 점을 발견하고 두 수가 모두 높은 수라는 점을 적용시켜 생각해보니 height가 될 수 있는 수의 흐름이 잡혔다. 막상 풀고 나서 보니 간단한 문제였던 것 같다.

    📍 문제

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

    저작자표시 (새창열림)
      'Algorithm' 카테고리의 다른 글
      • [ 프로그래머스 ] 2016년
      • [ 프로그래머스 ] 올바른 괄호
      • [ 프로그래머스 ] 하샤드 수
      • [ 프로그래머스 ] 위클리 챌린지(21.08) 4주차 직업군 추천하기
      emovie
      emovie

      티스토리툴바