[Java] 세 개의 구분자_프로그래머스

Joy🌱·2023년 9월 2일
1

🧩 Coding Challenges

목록 보기
20/20
post-thumbnail

🧩 문자열 잘라서 정렬하기

❓ 문제 발생


해당 문제를 읽고, for 루프 안에서 "a", "b", "c"에 해당되지 않는 요소라면 빈 문자열에 추가해 두었다가, "a", "b", "c"가 등장한다면 List에 추가하는 방법을 활용하여 문제를 풀어내었다!

테스트에서는 성공하여 문제를 제출했지만 ,,

흠 😱


❗ 원인

역시 원인 파악에는 테스트 케이스 작성하기!
for루프 이후, result.add(str); 코드로, 마지막에 남아있을 수 있는 str를 추가했을 때, 빈 문자열이어도 추가가 된 것이 원인인 것을 파악했다.


✅ 해결

빈 문자열이 아닐 때만 List에 추가하도록 코드 수정 완료!

import java.util.*;

class Solution {
    public String[] solution(String myStr) {
        
        List<String> result = new ArrayList<>();
        String[] myStrArr = myStr.split("");
        String str = "";
        
        for(int i = 0; i < myStrArr.length; i++) {
            if(!myStrArr[i].equals("a") && !myStrArr[i].equals("b") && !myStrArr[i].equals("c")) {
                str += myStrArr[i];
            } else if(!str.equals("")) {
                result.add(str);
                str = "";
            }
        }
        
        if(!str.equals("")) result.add(str);
        if(result.size() == 0) result.add("EMPTY");
        
        return result.stream().toArray(String[]::new);
        
    }
}

profile
Tiny little habits make me

0개의 댓글