-
반응형
안녕하세요, 하루플 입니다👀
프로그래머스 문제 중 위클리 챌린지 > 8주차 최소직사각형 문제를 풀어보았습니다.
코테에 점점 재미가 붙네요ㅎㅎ😁
문제
명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.
아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다.
모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.제한사항
- sizes의 길이는 1 이상 10,000 이하입니다.
- sizes의 원소는 [w, h] 형식입니다.
- w는 명함의 가로 길이를 나타냅니다.
- h는 명함의 세로 길이를 나타냅니다.
- w와 h는 1 이상 1,000 이하인 자연수입니다.
우선, 문제 푸는 과정먼저 설명하겠습니다!😉
1. 가로 세로 길이를 비교 후 가로가 세로보다 길다면 두 인덱스 변경👍
2. 가로 길이가 가장 긴 것을 max_width 에 저장
3. 세로 길이가 가장 긴 것을 max_height 에 저장
4. 가로 세로를 곱하여 크기를 구하고 return
이렇게 보니 굉장히 간단해졌죠!😎
사실 저는 문제 풀때 2,3,4번은 금방 생각했는데 1번을 생각하지 못해서 10분쯤 고민하다가 답을 찾았습니다!
명함이 가로보다 세로가 길다면 그만큼 세로 길이를 키워야 하기 때문에 돌려버리면 가로와 세로 인덱스를 바꾸면 됩니다.
다음은 결과 소스코드 입니다😊
반응형'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JAVA] 예산 (0) 2021.10.28 [프로그래머스/JAVA] 완주하지 못한 선수 (0) 2021.10.27 [프로그래머스/JAVA] 수박수박수박수박수박수? (0) 2021.10.26 [백준/JAVA] 1157번 단어 공부 (0) 2021.10.20 [프로그래머스/JAVA] 체육복 (탐욕 알고리즘) (0) 2021.10.20 댓글
- sizes의 길이는 1 이상 10,000 이하입니다.