Post

[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.