https://programmers.co.kr/learn/courses/30/lessons/86491
문제 분석
- 2차원 배열로 입력받은 명함들을 각각 긴쪽/짧은쪽을 구하여 그 중 가장 큰 값/작은 값을 뽑아낸다.
- Math.max와 Math.min을 이용하여 뽑아낸 숫자들을 곱하여 정답 배열에 넣고 리턴한다.
문제 풀이
1. for문을 통해 입력받은 명함의 개수만큼 반복한다.
2. 가로와 세로길이 중 긴 쪽을 height변수에 넣고, 짧은 쪽을 width변수에 넣는다.
3. 가장 긴 세로와 가장 긴 가로를 구하여 곱한 다음 정답을 return한다.
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int height = 0; // 가장 긴 세로
int width = 0; // 가장 긴 가로
for(int i=0;i<sizes.length;i++){
if(Math.max(sizes[i][0],sizes[i][1]) > height){
height = Math.max(sizes[i][0],sizes[i][1]);
}
if(Math.min(sizes[i][0],sizes[i][1])>width){
width = Math.min(sizes[i][0],sizes[i][1]);
}
}
answer = height * width;
return answer;
}
}
'Algorithm > programmers' 카테고리의 다른 글
programmers 예산 (0) | 2022.03.13 |
---|---|
programmers 2016년 (0) | 2022.02.18 |
programmers 나머지가 1이 되는 수 찾기 (0) | 2022.02.18 |
programmers 부족한 금액 계산하기 (0) | 2022.02.18 |
programmers [1차] 비밀지도 (0) | 2022.02.18 |