728x90
반응형

✨ 문제
최소직사각형
명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양의 크기와 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.
아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.
| 명함 번호 | 가로 길이 | 세로 길이 |
| 1 | 60 | 50 |
| 2 | 30 | 70 |
| 3 | 60 | 30 |
| 4 | 80 | 40 |
가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) * 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) * 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000( = 80 * 50)입니다.
모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✨ 개념
완전 탐색
-
✨ 최종코드
public static int solution(int[][] sizes) {
int maxWidth = 0;
int maxHeight = 0;
for (int[] size : sizes) {
// 가로, 세로 중 더 긴쪽을 가로로 둠.
if (size[0] < size[1]) {
int temp = size[0];
size[0] = size[1];
size[1] = temp;
}
if (maxWidth < size[0])
maxWidth = size[0];
if (maxHeight < size[1])
maxHeight = size[1];
}
return maxWidth * maxHeight;
}728x90
반응형
'알고리즘 > 99클럽' 카테고리의 다른 글
| 99클럽 코테 스터디 10일차 TIL + 이진 탐색 트리 (Binary Search Tree), BFS, [leetcode] Range Sum of BST (2) | 2024.05.30 |
|---|---|
| 99클럽 코테 스터디 9일차 TIL + 완전 탐색, [프로그래머스] 모의고사 (0) | 2024.05.29 |
| 99클럽 코테 스터디 7일차 TIL + Brute Force 브루트포스, 완전 탐색 (0) | 2024.05.27 |
| 99클럽 코테 스터디 6일차 TIL + Heap, PriorityQueue 우선순위 큐 (0) | 2024.05.26 |
| 99클럽 코테 스터디 5일차 TIL + PriorityQueue, Heap (0) | 2024.05.25 |