Today
-
Yesterday
-
Total
-
  • 프로그래머스 : 공백으로 구분하기 2
    코딩테스트 문제 풀이/프로그래머스 2023. 12. 4. 00:01

    이번 문제는 생각보다 어려웠다.

    공백 문자가 연속으로 여러개 나오는 경우도 있었기 때문에 어렵게 느껴졌던 것 같다.

    내 코드

    얻어걸림..

    import java.util.Arrays;
    import java.util.stream.*;
    
    class Solution {
        public String[] solution(String my_string) {
            return Arrays
                    .stream(my_string.split(" "))
                    .filter(s -> !"".equals(s))
                    .collect(Collectors.toList())
                    .toArray(new String[0]);
        }
    }

    우와

    스트림으로 풀이한 다른사람의 풀이가 있는지 구경하러 들어갔다가 정규식을 이용해 깔끔하게 풀이한 사람의 코드를 발견하였다.

    정규식 이용 다른 사람 풀이 1번째

    class Solution {
        public String[] solution(String my_string) {
            return my_string.trim().split("[ ]+");
        }
    }

    ✏️ [ ]+ : 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미


    정규식 이용 다른 사람 풀이 3번째

    class Solution {
        public String[] solution(String myString) {
            return myString.trim().split("\\s+");
        }
    }

    ✏️ \\s+ : 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미

    \s 는 정규 표현식의 특수 문자로, 공백 문자를 의미한다. + 는 하나 이상의 연속된 문자를 나타내는 특수 문자이다.




    아래는 학습해보고자 하는 스트림을 이용한 풀이!

    ✏️ Stream 이용 다른 사람 풀이 4번째

    class Solution {
        public String[] solution(String my_string) {
            return Arrays
            		.stream(my_string.trim().split(" "))
                    .filter(x -> !x.equals(""))
                    .toArray(String[]::new);
        }
    }

    ✏️ String[]::new는 배열 생성자를 참조하는 메서드 참조로, 자동으로 적절한 크기의 배열을 생성할 수 있도록 한다.

    toArray(String[]::new) 의 기본 형태는 toArray(size -> new String[size]) 이다.





    한번 풀 때 마다 🟠 하나씩 지우기

    다시 풀어봐야됨

    23년 6월 시도한 날짜 : 3, 4, 5, 6, 7, 9 실패한 날짜 : 4 성공한 날짜 : 3, 5, 6, 7, 9

Designed by Tistory / Custom by 얼거스