문제 설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤ myString ≤ 20
- 1 ≤ pat ≤ 5
- pat은 반드시 myString의 부분 문자열로 주어집니다.
- myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
입출력 예
myString | pat | result |
"AbCdEFG" |
"dE" | "AbCdE" |
"AAAAaaaa" | "a" | "AAAAaaaa" |
입출력 예 설명
입출력 예 #1
- "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.
입출력 예 #2
- "AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.
class Solution {
public String solution(String myString, String pat) {
for (int i = myString.length(); i >= pat.length(); i--) {
if (myString.substring(i - pat.length(), i).equals(pat)) {
return myString.substring(0, i); // 찾은 부분까지 잘라서 반환
}
}
return "";
}
}
문제 설명
문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ myString ≤ 1000
- 1 ≤ pat ≤ 10
입출력 예
myString | pat | result |
"banana" | "ana" | 2 |
"aaaa" | "aa" | 3 |
입출력 예 설명
입출력 예 #1
- "banana"에서 1 ~ 3번 인덱스에서 한 번, 3 ~ 5번 인덱스에서 또 한 번 "ana"가 등장해서 총 두 번 등장합니다. 따라서 2를 return 합니다.
입출력 예 #2
- "aaaa"에서 0 ~ 2번 인덱스에서 한 번, 1 ~ 3번 인덱스에서 한 번, 2 ~ 4번 인덱스에서 한 번 "aa"가 등장해서 총 세 번 등장합니다. 따라서 3을 return 합니다.
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
int index = 0;
// pat이 등장하는 위치를 계속 찾아서 카운트
while ((index = myString.indexOf(pat, index)) != -1) {
answer++;
index += 1; // 다음 위치부터 다시 검색 (겹치는 부분을 중복으로 카운트 방지)
}
return answer;
}
}
문제 설명
문자열 배열 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 합니다.
import java.util.List;
import java.util.ArrayList;
class Solution {
public String[] solution(String[] strArr) {
List<String> resultList = new ArrayList<>();
// 배열을 순회하며 "ad"가 포함되지 않은 문자열만 resultList에 추가
for (String str : strArr) {
if (!str.contains("ad")) {
resultList.add(str);
}
}
// 결과 리스트를 배열로 변환하여 반환
return resultList.toArray(new String[0]);
}
}
문제 설명
단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자와 공백으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.
입출력 예
my_string | result |
"i love you" |
["i", "love", "you"] |
"programmers" | ["programmers"] |
입출력 예 설명
입출력 예 #1
- 예제 1번의 my_string은 "i love you"로 공백 한 칸으로 나누어진 단어들은 앞에서부터 순서대로 "i", "love", "you" 이므로 ["i", "love", "you"]를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string은 "programmers"로 단어가 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.
class Solution {
public String[] solution(String my_string) {
return my_string.split(" ");
}
}
문제 설명
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자와 공백으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
- my_string에는 단어가 하나 이상 존재합니다.
입출력 예
my_string | result |
" i love you" |
["i", "love", "you"] |
" programmers " | ["programmers"] |
입출력 예 설명
입출력 예 #1
- 예제 1번의 my_string은 " i love you"로 공백을 기준으로 단어를 나누면 "i", "love", "you" 3개의 단어가 있습니다. 따라서 ["i", "love", "you"]를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string은 " programmers "로 단어는 "programmers" 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.
class Solution {
public String[] solution(String my_string) {
// trim() 앞뒤 공백 제거
// split("\\s+") 연속된 공백을 하나의 구분자로 처리 단어 분리
return my_string.trim().split("\\s+");
}
}
'기타 > study' 카테고리의 다른 글
코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 19) (0) | 2025.01.17 |
---|---|
코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 18) (0) | 2025.01.16 |
코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 16) (0) | 2025.01.14 |
코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 15) (0) | 2025.01.13 |
코딩 기초 트레이닝 - 프로그래머스(차근차근 시작해 보세요 Day 14) (0) | 2025.01.10 |