알고리즘 -프로그래머스 가장 큰 수 찾기 - 120899

워니·2023년 3월 21일

알고리즘

목록 보기
5/30
post-thumbnail

[level 0] 가장 큰 수 찾기 - 120899

문제 링크

성능 요약

메모리: 75.5 MB, 시간: 0.06 ms

구분

코딩테스트 연습 > 코딩테스트 입문

채점결과


정확성: 100.0
합계: 100.0 / 100.0

문제 설명

정수 배열 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에 있습니다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges


  • 내 풀이
class Solution {
    public int[] solution(int[] array) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        int max = Collections.max(list);
        int index = list.indexOf(max);

        int[] answer = {max, index};
        return answer;
    }
}
  • TDD
@Test
    @DisplayName("{1, 8, 3} = {8, 1}")
    void solution() {
        int[] array = {1, 8,3};
        int[] ans = {8, 1};
        Assertions.assertThat(new Solution().solution(array)).isEqualTo(ans);
    }


    @Test
    @DisplayName("{9, 10, 11, 8} = {11, 2}")
    void solution2() {
        int[] array = {9, 10, 11, 8};
        int[] ans = {11, 2};
        Assertions.assertThat(new Solution().solution(array)).isEqualTo(ans);
    }

  • 풀이
Integer 타입의 arrayList를 하나 만들어주고
인자값으로 들어온 array에 있는 원소값들을
다 add 해준 후
Collections.max 메서드를 이용하여 list의 max값을 찾아줬다
해당 max값으로 max값이 위치한 index를 list의 indexOf 메서드를 통해 찾았다
answer int배열에 max,index를 넣어준 후 return
profile
Backend-Dev

0개의 댓글