Problem Solving/Algorithm
[Java] 프로그래머스 - ad 제거하기
GWDEVEL
2026. 3. 30. 22:27
[Java] 프로그래머스 - ad 제거하기
문제 설명: 문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
방법 1. ArrayList 활용 (기초)
가장 직관적인 방법으로, 가변 리스트인 ArrayList를 사용하여 "ad"가 포함되지 않은 문자열만 담은 뒤 배열로 변환합니다.
import java.util.ArrayList;
import java.util.List;
class Solution {
public String[] solution(String[] strArr) {
List<String> list = new ArrayList<>();
for (String str : strArr) {
// "ad"가 포함되어 있지 않은 경우만 리스트에 추가
if (!str.contains("ad")) {
list.add(str);
}
}
// 리스트를 String 배열로 변환
return list.toArray(new String[0]);
}
}
방법 2. Java Stream 활용 (권장)
Java 8 이상에서 제공하는 Stream API를 사용하면 코드가 훨씬 간결해집니다.
import java.util.Arrays;
class Solution {
public String[] solution(String[] strArr) {
return Arrays.stream(strArr)
.filter(str -> !str.contains("ad")) // "ad" 미포함 필터링
.toArray(String[]::new); // 배열로 변환
}
}
💡 핵심 포인트
- str.contains("ad"): 특정 문자열이 포함되어 있는지 확인합니다.
- filter: 스트림에서 조건에 맞는 요소만 걸러내는 역할을 합니다.
- toArray(String[]::new): 스트림 결과를 다시 문자열 배열로 만드는 세련된 방법입니다.
문제 출처: 프로그래머스 코딩 테스트 연습