문제 설명
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 <= array의 길이 <= 100
- 0 <= array의 원소 <= 1,000
- array에 중복된 숫자는 없습니다.
입출력 예
array | result |
[1, 8, 3] | [8, 1] |
[9, 10, 11, 8] | [11, 2] |
class Solution {
public int[] solution(int[] array) {
int max = array[0];
int maxIndex = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
maxIndex = i;
}
}
int[] answer = {max, maxIndex};
return answer;
}
}
배열에서 가장 큰 수를 구하라고 하면 보통 Array.sort를 사용하여 오름차순으로 정렬한 후, 맨 앞의 원소를 선택하고는 합니다. 그러나 이 문제에서는 배열에서의 인덱스까지 함께 구하라고 했으므로 그 방법은 쓰지 못할 것 같습니다.
max를 담을 변수와 max의 인덱스를 담을 변수를 각각 생성합니다. 각각 0으로 초기화한 후, 자신보다 큰 수를 만나면 갱신하는 방향으로 풀이를 진행할 예정입니다. for문이 array의 길이만큼 순회하면서 앞서 설명했듯 array의 i번째 원소가 max보다 클 경우 max에 array[i]를 할당하면서 갱신하고 있습니다. 여기서 max의 인덱스는 i로 할당해줍니다.
answer 배열에 각각 max와 maxIndex를 할당합니다. 크기는 2로 고정되어 있으므로, 바로 값을 할당해버렸습니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 이진수 더하기(Java) (0) | 2023.04.09 |
---|---|
[프로그래머스 코딩테스트] 2차원으로 만들기(Java) (0) | 2023.04.09 |
[프로그래머스 코딩테스트] 다음에 올 숫자(Java) (0) | 2023.04.02 |
[프로그래머스 코딩테스트] 주사위의 개수(Java) (0) | 2023.04.02 |
[프로그래머스 코딩테스트] 약수 구하기(Java) (0) | 2023.04.02 |