본문 바로가기
프로그래머스코딩테스트연습풀이/C++

[프로그래머스/C++] 배열 비교하기

by 코코쵸마 2025. 2. 15.

문제

이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.

두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.

 

솔루션

#include <string>
#include <vector>
#include <numeric>

using namespace std;

int solution(vector<int> arr1, vector<int> arr2) {
    int answer = 0;
    if(arr1.size() > arr2.size()){
        return 1;
    }
    else if(arr1.size() < arr2.size()){
        return -1;
    }
    else{
        int sum1 = accumulate(arr1.begin(), arr1.end(), 1);
        int sum2 = accumulate(arr2.begin(), arr2.end(), 1);
        if(sum1 > sum2){
            return 1;
        }
        else if(sum1 < sum2){
            return -1;
        }
        else{
            return 0;
        }
    }
    return answer;
}

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr