[알고리즘문제풀기] 세 개의 구분자

silver's avatar
Apr 24, 2025
[알고리즘문제풀기] 세 개의 구분자

문제

내가 작성한 정답

replaceAll

import java.util.*; class Solution { public String[] solution(String myStr) { String str = myStr.replaceAll("a"," ").replaceAll("b"," ").replaceAll("c"," "); String[] s1 = str.split(" "); ArrayList<String> s2 = new ArrayList<>(); for(String s: s1) { if (!s.isBlank()) s2.add(s); } return str.isBlank()?new String[]{"EMPTY"}:s2.toArray(String[]::new); } }

정규식

import java.util.*; class Solution { public String[] solution(String myStr) { ArrayList<String> answer = new ArrayList<>(); for(String s: myStr.split("[abc]+")){ if(!s.isBlank()) answer.add(s); } return answer.isEmpty()?new String[]{"EMPTY"}:answer.toArray(String[]::new); } }

다른 사람들의 정답

stream

import java.util.Arrays; class Solution { public String[] solution(String myStr) { String[] arr = Arrays.stream(myStr.split("[abc]+")).filter(str -> !str.isEmpty()).toArray(String[]::new); return arr.length == 0 ? new String[] { "EMPTY" } : arr; } }

삼항연산자

import java.util.Arrays; class Solution { public String[] solution(String myStr) { myStr = myStr.replaceAll("[a|b|c]+", ","); myStr = myStr.charAt(0) == ',' ? myStr.substring(1) : myStr; myStr = myStr.equals("") ? "EMPTY" : myStr; return myStr.split("[,]"); } }
Share article

silver