728x90
문제 설명
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array 원소 ≤ 1,000
- array에 중복된 숫자는 없습니다.
입출력 예
array | result |
[1, 8, 3] | [8, 1] |
[9, 10, 11, 8] | [11, 2] |
입출력 예 설명
입출력 예 #1
- 1, 8, 3 중 가장 큰 수는 8이고 인덱스 1에 있습니다.
입출력 예 #2
- 9, 10, 11, 8 중 가장 큰 수는 11이고 인덱스 2에 있습니다.
[ 풀이 1 ]
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution {
public int[] solution(int[] array) {
int[] answer = {array[0],0};
for(int i=1;i<array.length;i++) {
if(answer[0]<array[i]) {
answer[0] = array[i];
answer[1] = i;
}
}
return answer;
}
}
|
구하는 값이 2개이므로 리턴값으로 int배열 2개를 선언하고 첫번째는 배열중에 제일 큰값을 구하기 위해 배열 첫번째 값을 인덱스를 구할 두번째 값은 0으로 초기화 반복문을 돌면서 큰값을 구하고 큰값의 위치도 구한다. |
[ 풀이 2 ]
1
2
3
4
5
6
7
8
9
10
11
|
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] array) {
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
int max = list.stream().max(Integer::compareTo).orElse(0);
return new int[] {max, list.indexOf(max)};
}
}
|
배열을 리스트로 만들고 List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList()); 리스트를 Stream으로 만들어 최대값을 구하고 int max = list.stream().max(Integer::compareTo).orElse(0); indexOf() 메서드로 위치를 구한다. return new int[] {max, list.indexOf(max)}; |
728x90
'프로그래머스 코딩(자바) > Level 0' 카테고리의 다른 글
Programmers Level 0 - 배열 회전 시키기 (0) | 2023.03.02 |
---|---|
Programmers Level 0 - 인덱스 바꾸기 (0) | 2023.03.02 |
Programmers Level 0 - 최댓값 만들기 (2) (0) | 2023.03.02 |
Programmers Level 0 - 주사위의 개수 (0) | 2023.03.02 |
Programmers Level 0 - n의 배수 고르기 (0) | 2023.03.02 |