반응형
- 내 풀이
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int[] check = new int[]{sizes[0][0], sizes[0][1]};
// 가로 세로 값을 비교해서 큰 값을 가로로 다 몰아 줌
for (int i = 0; i < sizes.length; i++) {
// 세로보다 가로가 더 크다면
if (sizes[i][0] > sizes[i][1]) {
// 비교 값 가로보다 크다면 check[0]에 담기
if (check[0] < sizes[i][0]) {
check[0] = sizes[i][0];
}
// 비교 값 세로보다 크다면 check[1]에 담기
if(check[1] < sizes[i][1]){
check[1] = sizes[i][1];
}
// 가로보다 세로가 더 크다면
} else if (sizes[i][0] < sizes[i][1]) {
{
// 비교 값 가로보다 크다면 check[0]에 담기
if (check[0] < sizes[i][1]) {
check[0] = sizes[i][1];
}
// 비교 값 세로보다 크다면 check[1]에 담기
if(check[1] < sizes[i][0]){
check[1] = sizes[i][0];
}
}
}
}
answer = check[0] * check[1];
return answer;
}
}
실행은 성공하는데 제출테스트에서 몇개씩 틀려서 다른 분들의 글을 보고 힌트를 얻어서 다시 풀이
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
// 큰 숫자 중에 큰 수
int finalBigNum = 0;
// 작은 숫자 중에 큰수
int finalSmallBum = 0;
for (int i = 0; i < sizes.length; i++) {
// 임시로 비교하기 위한 변수들
int bigNum = sizes[i][0];
int smallNum = sizes[i][1];
// 가로가 세로보다 작으면
if (bigNum < smallNum){
// 값을 돌리기 위한 임시 변수
int change = bigNum;
// 가로에 세로 값을 넣어줌
bigNum = smallNum;
// 세로에 가로 값을 넣어줌
smallNum = change;
}
// 임시 큰 값이 최종 큰 값보다 크다면
if (bigNum > finalBigNum){
finalBigNum = bigNum;
}
// 임시 작은 큰 값이 최종 작은 큰 값보다 크다면
if (smallNum > finalSmallBum){
finalSmallBum = smallNum;
}
}
answer = finalBigNum * finalSmallBum;
return answer;
}
}
- 다른 사람 풀이
class Solution {
public int solution(int[][] sizes) {
int length = 0, height = 0;
for (int[] card : sizes) {
length = Math.max(length, Math.max(card[0], card[1]));
height = Math.max(height, Math.min(card[0], card[1]));
}
int answer = length * height;
return answer;
}
}
Math를 왜 생각못했을까....엄청 허무하네
'프로그래머스 > [프로그래머스 - JAVA] Lv.1' 카테고리의 다른 글
[프로그래머스 - JAVA] 문자열 내 마음대로 정렬하기 (0) | 2023.04.03 |
---|---|
[프로그래머스 - JAVA] [1차] 비밀지도 - 17년도 카카오 1차 코딩테스트 (0) | 2023.04.03 |
[프로그래머스 - JAVA] 삼총사 (0) | 2023.04.02 |
[프로그래머스 - JAVA] 시저 암호 (0) | 2023.04.02 |
[프로그래머스 - JAVA] 예산 (0) | 2023.04.02 |
댓글