목차
#1 ad 제거하기
문제설명
문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ strArr의 길이 ≤ 1,000
- 1 ≤ strArr의 원소의 길이 ≤ 20
- strArr의 원소는 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
strArr | result |
{"and","notad","abcd"} | {"and","abcd"} |
{"there","are","no","a","ds"} | {"there","are","no","a","ds"} |
입출력 예 설명
입출력 예 #1
- 1번 인덱스의 문자열인 "notad"는 부분 문자열로 "ad"를 가집니다. 따라서 해당 문자열을 제거하고 나머지는 순서를 유지하여 ["and", "abcd"]를 return 합니다.
입출력 예 #2
- "ad"가 부분 문자열로 들어간 문자열이 존재하지 않습니다. 따라서 원래 배열을 그대로 return 합니다.
#2 알고리즘 및 코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
String[] strArr = {"and","notad","abcd"};
Solution sl = new Solution();
System.out.println(Arrays.toString(sl.solution(strArr)));
}
}
class Solution {
public String[] solution(String[] strArr) {
List<String> stringList = new ArrayList<>();
for(int i = 0; i < strArr.length; i++){
if(strArr[i].contains("ad")){
continue;
}else{
stringList.add(strArr[i]);
}
}
return stringList.toArray(new String[0]);
}
}
class Solution {
public String[] solution(String[] strArr) {
return Arrays.stream(strArr)
.filter(s -> !s.contains("ad"))
.toArray(String[]::new);
}
}
- 이번 문제는 이전 문제보다 난이도가 훨 쉽다.
- 그저 주어진 문자열 배열을 순회하면서 "ad"가 포함되어 있지 않은 문자열만 뺀 문자열을 반환하면 되는 것이다.
728x90
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] x 사이의 개수 (0) | 2024.01.06 |
---|---|
[프로그래머스, LV.0] 공백으로 구분하기 2 (1) | 2024.01.06 |
[프로그래머스, LV.0] 문자열이 몇 번 등장하는지 세기 (2) | 2024.01.06 |
[프로그래머스, LV.0] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (1) | 2024.01.06 |
[프로그래머스, LV.0] A 강조하기 (0) | 2024.01.05 |