KSI일기장
프로그래머스 최댓값 만들기(2) (자바) Math.max , Integer.MIN_VALUE 본문
class Solution {
public int solution(int[] numbers) {
int answer = Integer.MIN_VALUE;
//numbers 중 첫번째 값 선택
for(int i=0; i<numbers.length; i++){
//numbers 중 첫번째 값과 비교할 값 선택
for(int j=0; j<numbers.length; j++){
//첫번째 값과 두번째 값이 같지 않은 경우만 곱하기
if(i != j){
int result = numbers[i]*numbers[j];
//곱한 값들 중 최대값 구하기
if(result>answer){
answer = result;
}
}
}
}
return answer;
}
}
class Solution {
public int solution(int[] numbers) {
int answer = Integer.MIN_VALUE;
//numbers 중 첫번째 값 선택
for(int i = 0; i < numbers.length; i++){
//numbers 중 첫번째 값과 곱할 두번째 값 선택
//j=i+1은 i와 j가 중복 값 선택을 방지하기 위해
for(int j = i + 1; j < numbers.length; j++){
//첫번째 값과 두번째 값을 곱해 그 중 최대값 구하기
answer = Math.max(answer, numbers[i] * numbers[j]);
}
}
return answer;
}
}
answer에 초기값으로 0이 아닌 Integer.MIN_VALUE를 사용하는 이유
Integer.MIN_VALUE는 정수 중 가장 작은 값이다.
answer=0; 이면 값을 넣어서 비교할 때 최대값이 음수일 경우 0이 음수보다 크기 때문에
음수는 비교하지 않고 무시하게 된다.
그럼 최대값이 배열안에 수를 곱한 값이 아닌 0이 최대값이 되기 때문에
음수하고도 비교해주기 위해서 정수 중 가장 작은 값을 초기값으로 세팅하는 것이다.
'JavaAlgorithm' 카테고리의 다른 글
프로그래머스 가장 큰 수 찾기 (자바) (2) | 2023.12.04 |
---|---|
프로그래머스 직삼각형 출력하기(*찍기, repeat()) (자바) (0) | 2023.12.01 |
프로그래머스 가위 바위 보 (자바) (1) | 2023.11.30 |
프로그래머스 개미군단 (자바) (0) | 2023.11.30 |
프로그래머스 암호해독 (자바) (0) | 2023.11.30 |