세 개의 구분자
문제
- 문자열 myStr이 매개변수로 주어집니다.
- 임의의 문자열이 주어질 때 문자 "a", "b", "c"를 구분자로
- 문자열을 나눠 출력하는 문제입니다.
- 입출력 예
-
myStr result "baconlettucetomato" ["onlettu", "etom", "to"] "abcd" ["d"] "cabab" ["EMPTY"]
-
테스트 (인텔리제이)
- myStr을 replace 메서드를 이용하여 abc 문자들을 ,(쉼표)로 치환해줍니다.
- 치환된 문자열을 split을 이용하여 공백 기준으로 문자열을 나눠주고
- for문을 통해 나눠진 문자열을 하나씩 꺼내줍니다.
- if문으로 하나씩 꺼내진 문자열이 빈 문자열인지 체크할 수 있도록 isEmpty 메서드를 사용하고 빈 문자열이 아니라면 List인 answer에 문자열을 추가하도록 합니다.
- 또 다른 if문과 isEmpty를 이용하여 answer가 빈 배열인지 체크하고 빈 배열이라면 EMPTY라는 문자열을 추가하도록 해주면 됩니다.
import java.util.*;
class Solution {
public List solution(String myStr) {
List<String> answer = new ArrayList<>();
myStr = myStr.replace("a", " ");
myStr = myStr.replace("b", " ");
myStr = myStr.replace("c", " ");
String[] newStr = myStr.split(" ");
for (String s : newStr) {
if (!s.isEmpty()) {
answer.add(s);
}
}
if (answer.isEmpty()) {
answer.add("EMPTY");
}
return answer;
}
}
// class Solution {
// public String[] solution(String myStr) {
// myStr = myStr.replaceAll("[abc]+", ",");
// myStr = myStr.charAt(0) == ',' ? myStr.substring(1) : myStr;
// myStr = myStr.isEmpty() ? "EMPTY" : myStr;
// return myStr.split(",");
// }
// }
프로그래머스 코드
import java.util.*;
class Solution {
public List solution(String myStr) {
List<String> answer = new ArrayList<>();
myStr = myStr.replace("a", " ");
myStr = myStr.replace("b", " ");
myStr = myStr.replace("c", " ");
String[] newStr = myStr.split(" ");
for (String s : newStr) {
if (!s.isEmpty()) {
answer.add(s);
}
}
if (answer.isEmpty()) {
answer.add("EMPTY");
}
return answer;
}
}
'Coding Test > Java Coding Test' 카테고리의 다른 글
[프로그래머스 / 자바] - 2의 영역 (0) | 2024.07.22 |
---|---|
[프로그래머스 / 자바] - 7의 개수 (0) | 2024.07.19 |
[프로그래머스 / 자바] - 수열과 구간 쿼리 3 (0) | 2024.07.15 |
[프로그래머스 / 자바] - 간단한 논리 연산 (0) | 2024.07.12 |
[프로그래머스 / 자바] - 1로 만들기 (0) | 2024.07.11 |