[Programmers] #181882 - 조건에 맞게 수열 변환하기 1 [Java][C++][Python]
[Programmers] #181882 - 조건에 맞게 수열 변환하기 1 [Java][C++][Python]
1. 아이디어
정수 배열 arr을 순회하며 원소의 값이 50보다 크거나 같은 짝수인지, 50보다 작은 홀수인지로 분기 처리하며 쭉 갱신하면 된다.
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
class Solution {
public int[] solution(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 50 && arr[i] % 2 == 0) {
arr[i] /= 2;
} else if (arr[i] < 50 && arr[i] % 2 != 0) {
arr[i] *= 2;
}
}
return arr;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> arr) {
for (int& x : arr) {
if (x >= 50 && x % 2 == 0) {
x /= 2;
} else if (x < 50 && x % 2) {
x *= 2;
}
}
return arr;
}
1
2
3
4
5
6
7
8
9
10
def transform(x):
if x >= 50 and x % 2 == 0:
return x // 2
if x < 50 and x % 2:
return x * 2
return x
def solution(arr):
return [transform(x) for x in arr]
This post is licensed under CC BY 4.0 by the author.