세 개의 구분자 Lv. 0

박영준·2023년 6월 11일
0

코딩테스트

목록 보기
242/300
class Solution {
    public String[] solution(String myStr) {
        String[] answer = {};
        return answer;
    }
}

해결법

방법 1

import java.util.*;

class Solution {
    public String[] solution(String myStr) {
    
        myStr = myStr.replaceAll("a|b|c", " ");

        ArrayList <String> list = new ArrayList<>();

        String[] str = myStr.split(" ");
        
        // 빈 배열이 아닐 경우
        for (int i = 0; i < str.length; i ++) {
            if (!str[i].equals("")) {
                list.add(str[i]);
            }
        }

        String[] answer = new String [list.size()];

		// 길이가 0 일 경우
        if (answer.length == 0) {		
            answer = new String[1];		// 길이 1의 새로운 배열을 생성해서
            answer[0] = "EMPTY";
            return answer;
        }

		// 길이가 0 이 아닐 경우
        for (int i = 0; i < list.size(); i ++) {
            answer[i] = list.get(i);
        }

        return answer;
    }
}
  • replaceAll("a|b|c", " ")

방법 2

import java.util.ArrayList;

class Solution {
    public String[] solution(String myStr) {
    
        ArrayList<String> list = new ArrayList<>();
        
        String str = "";

        for (int i = 0; i < myStr.length(); i++) {
            char ch = myStr.charAt(i);
            
            if (ch == 'a' || ch == 'b' || ch == 'c') {
                if (!str.isEmpty()) {
                    list.add(str);
                    str = "";			// char -> string 형 변환
                }
            } else {
                str += ch;
            }
        }

        if (!str.isEmpty()) {
            list.add(str);
        } else if (list.isEmpty()) {
            return new String[]{"EMPTY"};
        }

        String[] answer = new String[list.size()];

        for (int i = 0; i < answer.length; i++) {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}
  • isEmpty() : 해당 문자열의 길이가 0이면 true를 반환하고, 아니면 false를 반환

    참고: String 클래스


세 개의 구분자 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글