본문 바로가기
코딩테스트 연습

x 사이의 개수

by 신재은👩🏼‍💻 2024. 4. 11.

문제 설명

문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

 

제한사항

  • 1 ≤ myString의 길이 ≤ 100,000

 

입출력 예

myString result
"oxooxoxxox" [1, 2, 1, 0, 1, 0]
"xabcxdefxghi" [0, 3, 3, 3]

import java.util.*;

class Solution {
    public int[] solution(String myString) {
        
        String[] parts = myString.split("x", -1);
        int answerlength = parts.length;
        int[] answer = new int[answerlength];
        
        for(int i=0; i<parts.length; i++) {
            answer[i] = parts[i].length();
        }
        return answer;
    }
}


로직을 짠 뒤 특정 메서드나 저 위의 -1같은 특이 사항을 모르겠으면 gpt한테 물어서 풀고 있다.

 

다른 사람의 풀이를 봤을 때 

 

import java.util.Arrays;

 

class Solution {

    public int[] solution(String myString) {

 

        return Arrays.stream(myString.split("x", myString.length()))

            .mapToInt(x -> x.length())

            .toArray();

    }

}

 

이런 게 있던데 myString.length()처럼 양수인 값이 들어가면 split된 후 리턴되는 값에서 맨 마지막의 ""은 출력이 안 될텐데

프로그래머스에서 코드 실행을 하면 출력이 된다...

이 부분은 더는 모르겠다.

 

import java.util.*;

 

class Solution {

    public Integer[] solution(String myString) {

        return Arrays.stream(myString.split("x", -1)).map(String::length).toArray(Integer[]::new);

    }

}

 

이건 좀 기발했다...

'코딩테스트 연습' 카테고리의 다른 글

할 일 목록  (0) 2024.04.11
ad 제거하기  (0) 2024.04.11
0 떼기  (0) 2024.04.10
배열 만들기 3  (0) 2024.04.10
특별한 이차원 배열 1  (0) 2024.04.10