제가 공부한 내용을 정리하는 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
Programmers 알고리즘 고득점 Kit입니다.
포인트
하나의 명함의 최대 값을 가로로 설정하고 각 명함마다의 최대의 가로와 세로를 설정해야 모든 명함이 들어가는 명함 케이스의 최소 크기를 측정할 수 있습니다.
소스코드
class Solution {
public int solution(int[][] sizes) {
int row = Integer.MIN_VALUE, col = Integer.MIN_VALUE;
for(int[] size: sizes) {
row = Math.max(row, Math.max(size[0], size[1]));
col = Math.max(col, Math.min(size[0], size[1]));
}
return row * col;
}
}
코드 설명
- for(int[] size: sizes) {
row = Math.max(row, Math.max(size[0], size[1]));
col = Math.max(col, Math.min(size[0], size[1])); }
sizes 배열을 순회하면서 각 명함의 크기를 확인합니다.
- Math.max(size[0], size[1])를 사용해 현재 명함의 긴 변을 찾습니다. 이 값을 row와 비교하여 row에 더 큰 값을 저장합니다.
- Math.min(size[0], size[1])를 사용해 현재 명함의 짧은 변을 찾습니다. 이 값을 col과 비교하여 col에 더 큰 값을 저장합니다.
- return row * col
가장 큰 row와 col 값의 곱을 반환하여 지갑의 최소 크기를 계산합니다. 이 값은 모든 명함이 들어갈 수 있는 최소 크기의 지갑입니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[코딩테스트] Java 소수 찾기 (3) | 2024.11.13 |
---|---|
[코딩테스트] Java 모의고사 (1) | 2024.11.13 |
[코딩테스트] Java H-Index (3) | 2024.11.12 |
[코딩테스트] Java 가장 큰 수 (1) | 2024.11.12 |
[코딩테스트] Java K번째 수 (0) | 2024.11.12 |