[프로그래머스/C++]Lv.0 - 최댓값 만들기 (2)

YH J·2023년 4월 18일
0

프로그래머스

목록 보기
37/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120862

내 풀이

이중for문사용해서 하나하나 곱해서 큰값나올때마다 갱신해간다.

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int answer = -2147483648;
    
    for(int i = 0; i < numbers.size() - 1; i++)
    {
        for(int j = i + 1; j < numbers.size(); j++)
        {
            answer = numbers[i]*numbers[j] > answer ? numbers[i]*numbers[j] : answer;
        }
    }
    
    return answer;
}

다른 사람의 풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> numbers) {
    sort(numbers.begin(),numbers.end());    
    int n = numbers.size();
    return max(numbers[n-1]*numbers[n-2],numbers[0]*numbers[1]);
}

다른 사람의 풀이 해석

정렬한 다음 가장 앞 2개와 가장 뒤 2개를 곱한것 중 큰 수를 반환한다.
for문의 사용없이 하였다.

profile
게임 개발자 지망생

0개의 댓글