[C++] 프로그래머스 조건에 맞게 수열 변환하기 1

문제설명

정수 배열 arr가 주어집니다.
arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면
2로 나누고, 50보다 작은 홀수라면 2를 곱합니다.
그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.


제한사항

• 1 ≤ arr의 길이 ≤ 1,000,000
  ◦ 1 ≤ arr의 원소의 값 ≤ 100


입출력 예

arr result
[1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49]


풀이

50보다 크거나 같은 짝수인 경우 2로 나누고, 50보다 작은 홀수는 2를 곱하는 로직을 구현하여 문제를 풀 수 있었습니다.

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    
    for(int i = 0; i < arr.size(); i++)
    {
        if(arr[i] >= 50 && arr[i] % 2 == 0)
        {
            answer.push_back(arr[i] / 2);
        }
        else if(arr[i] < 50 && arr[i] % 2 != 0)
        {
            answer.push_back(arr[i] * 2);
        }
        else
        {
            answer.push_back(arr[i]);
        }
    }
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment