[Programmers] #181912 - 배열 만들기 5 [Java][C++][Python]
[Programmers] #181912 - 배열 만들기 5 [Java][C++][Python]
1. 아이디어
문자열 배열 intStrs의 각 원소에서 인덱스 s부터 길이 l만큼의 부분 문자열을 잘라 정수로 변환하고, 그 값이 k보다 큰 경우만 배열에 담아서 반환하면 된다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N \times L)$ | $O(N)$ |
($N$ = intStrs의 길이, $L$ = 입력값 l)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
List<Integer> list = new ArrayList<>();
for (String str : intStrs) {
int x = Integer.parseInt(str.substring(s, s + l));
if (x > k) list.add(x);
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<string> intStrs, int k, int s, int l) {
vector<int> v;
for (string& str : intStrs) {
int x = stoi(str.substr(s, l));
if (x > k) v.push_back(x);
}
return v;
}
1
2
3
4
5
6
7
8
def solution(intStrs, k, s, l):
res = []
for token in intStrs:
x = int(token[s : s + l])
if x > k:
res.append(x)
return res
This post is licensed under CC BY 4.0 by the author.