프로그래머스 Lv.0 '최댓값 만들기(1)' 자바
Q. 정수 배열 numbers가 매개변수로 주어진다.
numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록
solution 함수를 완성하시오.
class Solution {
public int solution(int[] numbers) {
int max1 = Integer.MIN_VALUE;
int max2 = Integer.MIN_VALUE;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] > max1) {
max2 = max1;
max1 = numbers[i];
} else if (numbers[i] > max2) {
max2 = numbers[i];
}
}
int answer = max1 * max2;
return answer;
}
}
가장 큰 값 max1과 두 번째로 큰 값 max2를 초기화시킨다.
int max1 = numbers[0];
int max2 = numbers[0];
이렇게 해도 되지만, 이럴 경우 numbers[0]이 가장 큰 값이라면,
max1과 max2가 같은 값으로 지정되어 오류가 발생할 수 있다.
그래서 Integer.MIN_VALUE 메서드를 이용했다.
반복문을 돌며 조건문을 사용해 가장 큰 값을 찾아
max1에 넣는다.
이 때 max2 = max1; 코드로
최댓값을 발견할 때마다 이전 최댓값을 max2에 넣는 작업을 해줘야한다.
조건문을 사용해 두 번째로 큰 값을 찾는 과정을 한 번 더 해주고
두 값을 곱해주면 된다.
'Log > Coding Test' 카테고리의 다른 글
Day116_Programmers Lv.0 '옷가게 할인받기' Java (0) | 2024.03.08 |
---|---|
Day114_Programmers Lv.0 '세균 번식' Java (0) | 2024.03.03 |
Day112_Programmers Lv.0 '삼각형의 완성조건(1)' Java (0) | 2024.02.25 |
Day110_Programmers Lv.0 '특정 문자 제거하기' Java (1) | 2024.02.24 |
Day109_Programmers Lv.0 '문자열 안에 문자열' Java (0) | 2024.02.24 |