[programmers] 최댓값 만들기(1)

J-Cheol·2023년 11월 6일
0

프로그래머스

목록 보기
2/27
post-thumbnail

문제


풀이 코드


class Solution 
{
    public int solution(int[] numbers) 
    {
        int i = 0;
      
        while (i < numbers.length - 1)
        {
            int j = i + 1;
            while (j < numbers.length)
            {
                if (numbers[i] < numbers[j])
                {
                    int temp = numbers[j];
                    numbers[j] = numbers[i];
                    numbers[i] = temp;
                }
                j++; 
            }
            i++;
        }
        int answer = numbers[0] * numbers[1];        
        return answer;
    }
}

리뷰


문제에서 원하는 것은 원소 두 개를 곱해 만들 수 있는 최댓값이었습니다.
매개변수로 들어온 배열을 내림차순으로 정리하면 0번째 index1번째 index에 제일 큰 수와 큰 수의 다음 수가 올 것을 생각하고 문제를 풀었습니다.
swap을 사용하여 i번째(0번) 인덱스를 고정하고 j번째(1번) 인덱스를 활용하여 i번째와 j번째의 값을 비교하여 내림차순으로 정리하였습니다. int j의 값이 numbers.length와 같게 된다면 int i를 증가시켜 그 다음 index와 그 이후 index를 비교하도록 하였습니다.
모든 index를 거치고 나온 numbers[]는 내림차순으로 정렬되어 있기때문에, numbers[0] = 최댓값 , numbers[1] = 최댓값 이후의 값인 것을 알 수 있습니다.
두 개의 값을 곱하여 문제에서 원하는 최댓값을 반환해주며 문제를 마쳤습니다.

profile
신입 백엔드 개발자(JAVA, Spring Boot, MYSQL)

0개의 댓글