아이디어
- 배열로 받은 명함 사이즈를 긴 부분과 짧은 부분 배열 두 개로 나누어준다.
- 긴 부분에서 가장 큰 사이즈, 짧은 부분에서 가장 큰 사이즈를 구함으로써 모든 명함이 들어 갈 수 있는
사이즈를 만들 수 있게 된다.
풀이
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int[] longD = new int[sizes.length];
int[] shortD = new int[sizes.length];
//명함의 긴 부분과 짧은 부분 배열에 담기
for(int i=0;i < sizes.length;i++){
if(sizes[i][0]<sizes[i][1]){
longD[i] = sizes[i][1];
shortD[i] = sizes[i][0];
}else{
longD[i] = sizes[i][0];
shortD[i] = sizes[i][1];
}
}
//longD[마지막] => 최대값 shortD[마지막] => 최소값
for(int j=0;j < sizes.length-1;j++){
if(longD[j] > longD[j+1]){
longD[j+1] = longD[j];
}
if(shortD[j] > shortD[j+1]){
shortD[j+1] = shortD[j];
}
}
answer = longD[sizes.length-1] * shortD[sizes.length-1];
return answer;
}
}
'개발 > Algorithm' 카테고리의 다른 글
[백준 5073] 삼각형과 세 변 (0) | 2023.12.02 |
---|---|
[백준 23971] ZOAC4 (1) | 2023.12.01 |
[PS] 코딩테스트에 나오는 완전탐색 (0) | 2023.07.31 |
[프로그래머스] 요격 시스템 (Java 풀이) (0) | 2023.04.16 |
[Python] 백준 9093번 단어 뒤집기 (0) | 2021.11.15 |
댓글