Post

[Programmers] #181835 - 조건에 맞게 수열 변환하기 3 [Java][C++][Python]

[Programmers] #181835 - 조건에 맞게 수열 변환하기 3 [Java][C++][Python]

문제 링크


1. 아이디어

정수 배열 arr과 자연수 k가 주어질 때, k가 홀수인지 짝수인지 여부에 따라 arr을 변환한 배열을 반환하는 문제다. 홀짝만 구한 후 변환만 진행하면 간단하게 해결할 수 있다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(1)$

($N$ = arr의 길이. Python은 새 리스트를 만들어 반환하므로 공간 $O(N)$)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
    public int[] solution(int[] arr, int k) {
        if (k % 2 != 0) {
            for (int i = 0; i < arr.length; i++) {
                arr[i] = arr[i] * k;
            }
        } else {
            for (int i = 0; i < arr.length; i++) {
                arr[i] = arr[i] + k;
            }
        }

        return arr;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;

vector<int> solution(vector<int> arr, int k) {
    if (k % 2) {
        for (int& x : arr) x *= k;
    } else {
        for (int& x : arr) x += k;
    }

    return arr;
}
1
2
3
4
5
def solution(arr, k):
    if k % 2:
        return [x * k for x in arr]
    else:
        return [x + k for x in arr]

This post is licensed under CC BY 4.0 by the author.