본문 바로가기

Coding Test/프로그래머스 기초

[Day 17] Java - 공백으로 구분하기 2

👽내 코드

import java.util.*;

class Solution {
    public ArrayList<String> solution(String my_string) {
        String[] answer = my_string.split(" ");
        ArrayList<String> list = new ArrayList<>();
        
        //공백이 아닌 배열만 list에 저장
        for(int i=0; i<answer.length;i++){
            if(!answer[i].equals("")){
                list.add(answer[i]);
            }
        }
        return list;
    }
}

 

 

🦜 다른 코드

class Solution {
    public String[] solution(String my_string) {
        String[] answer = null;

        // 공백이 두 칸 이상 나오지 않도록 아래의 반복문을 수행한다.
        // 각 공백이 한 칸만 나오면 반복문을 빠져나오고 그 공백 하나로 구분한다.
        while (my_string.contains("  ")) {
            my_string = my_string.replace("  ", " ");
        }
        // 공백으로 시작하면 그 공백은 제거해야 한다.
        if (my_string.startsWith(" ")) {
            my_string = my_string.substring(1, my_string.length());
        }
        answer = my_string.split(" ");
        return answer;
    }
}

 

1) 공백 자체를 1개로 줄이는 while문이 신박! 공백이 여러개인 것을 어떻게 처리해야하나 고민했는데 

    이런 방법도 있다니 생각이 재밌다.

 

2) 공백으로 시작하는 부분 따로 처리. startWith( ) 메서드 알게됨

 

[문제출처: https://school.programmers.co.kr/learn/challenges?order=recent&levels=0]