프로그래머스 Day 17 문자열
특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
💫문제 설명💫
문자열 myString과 pat가 주어집니다.
myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
💫제한사항💫
5 ≤ myString ≤ 20
1 ≤ pat ≤ 5
pat은 반드시 myString의 부분 문자열로 주어집니다.
myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
💫입출력 ex💫
myString | pat | result |
---|---|---|
“AbCdEFG” | “dE” | “AbCdE” |
“AAAAaaaa” | “a” | “AAAAaaaa” |
문제풀이
class Solution {
public String solution(String myString, String pat) {
int index = myString.lastIndexOf(pat);
return myString.substring(0, index) + pat;
}
}
문자열이 몇 번 등장하는지 세기
💫문제 설명💫
문자열 myString과 pat이 주어집니다.
myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
💫제한사항💫
1 ≤ myString ≤ 1000
1 ≤ pat ≤ 10
💫입출력 ex💫
myString | pat | result |
---|---|---|
“banana” | “ana” | 2 |
“aaaa” | “aa” | 3 |
문제풀이
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
int index = -1; // indexOf 메서드의 시작 위치를 나타내는 변수를 초기화합니다.
while ((index = myString.indexOf(pat, index + 1)) != -1) {
answer++;
}
return answer;
}
}
ad 제거하기
💫문제 설명💫
문자열 배열 strArr가 주어집니다.
배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
💫제한사항💫
1 ≤ strArr의 길이 ≤ 1,000
1 ≤ strArr의 원소의 길이 ≤ 20
strArr의 원소는 알파벳 소문자로 이루어진 문자열입니다.
💫입출력 ex💫
strArr | result |
---|---|
[“and”,”notad”,”abcd”] | [“and”,”abcd”] |
[“there”,”are”,”no”,”a”,”ds”] | [“there”,”are”,”no”,”a”,”ds”] |
문제풀이
import java.util.Arrays;
class Solution {
public String[] solution(String[] strArr) {
return Arrays.stream(strArr)
.filter(str -> !str.contains("ad"))
.toArray(String[]::new);
}
}
공백으로 구분하기 1
💫문제 설명💫
단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때,
my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
my_string은 영소문자와 공백으로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.
💫입출력 ex💫
my_string | result |
---|---|
“i love you” | [“i”, “love”, “you”] |
“programmers” | [“programmers”] |
문제풀이
class Solution {
public String[] solution(String my_string) {
return my_string.split(" ");
}
}
공백으로 구분하기 2
💫문제 설명💫
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때,
my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
my_string은 영소문자와 공백으로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
my_string에는 단어가 하나 이상 존재합니다.
💫입출력 ex💫
my_string | result |
---|---|
” i love you” | [“i”, “love”, “you”] |
” programmers “ | [“programmers”] |
문제풀이
class Solution {
public String[] solution(String my_string) {
// trim 문자열 공백 제거, \\s+ 정규식 연속된 공백
return my_string.trim().split("\\s+");
}
}
Leave a comment