[Programmers] #181870 - ad 제거하기 [Java][C++][Python]
[Programmers] #181870 - ad 제거하기 [Java][C++][Python]
1. 아이디어
문자열 배열 strArr에서 "ad"를 부분 문자열로 포함하는 문자열을 제거한 후 반환하는 문제로 문자열이 부분 문자열로 포함됐는지 판단하는 내장 기능을 활용하면 간단하게 해결할 수 있다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N \times M)$ | $O(N)$ |
($N$ = strArr의 길이, $M$ = strArr 원소의 최대 길이. C++는 문자열을 복사해 담아 공간 $O(N \times M)$)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;
class Solution {
public String[] solution(String[] strArr) {
List<String> list = new ArrayList<>();
for (String s : strArr) {
if (s.contains("ad")) continue;
list.add(s);
}
return list.toArray(new String[0]);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
vector<string> solution(vector<string> strArr) {
vector<string> v;
for (string& s : strArr) {
if (s.find("ad") != -1) continue;
v.push_back(s);
}
return v;
}
1
2
def solution(strArr):
return [s for s in strArr if "ad" not in s]
This post is licensed under CC BY 4.0 by the author.