문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
명함에 가로 세로 크기 데이터가 주어지는데, 명함을 회전에서 지갑을 담을 수 있을 때 지갑의 최소 크기를 구하는 문제이다.
일단 회전을 해서라도 지갑에 명함을 전부 다 담아야한다는 생각을 했다.
1. 한쪽은 큰 길이 + 한쪽은 짧은 길이에서 최댓값을 구하면 지갑을 전부 담을 수 있고, 최소 지갑의 크기가 나올 것이라고 생각했다.
2. 너비를 큰 길이, 높이를 짧은 길이로 잡고, 명함의 너비, 높이 값을 가져온다.
2-1. 비교해서 둘 중에 큰 길이에 너비와 비교해 최댓값을 구한다.
2-2. 비교해서 둘 중에 짧은 길이에 높이와 비교해 최댓값을 구한다.
3. 넓이를 구해서 리턴한다.
소스코드
class Solution {
public int solution(int[][] sizes) {
int w = Integer.MIN_VALUE;
int h = Integer.MIN_VALUE;
for (int i = 0; i < sizes.length; i++) {
int width = sizes[i][0];
int height = sizes[i][1];
if (width > height) {
w = Math.max(width, w);
h = Math.max(height, h);
} else {
w = Math.max(height, w);
h = Math.max(width, h);
}
}
return w * h;
}
}
실행결과

'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] PCCP 기출문제 1번 - 동영상 재생기 - Java (0) | 2025.07.27 |
|---|---|
| [Programmers] 로또의 최고 순위와 최저 순위 - Java (2) | 2025.07.26 |
| [Programmers] 폰켓몬 - Java (0) | 2025.07.24 |
| [Programmers] 비밀 코드 해독 - Java (0) | 2025.07.24 |
| [Programmers] 한 번만 등장한 문자 - Java (0) | 2025.07.22 |