프로그래머스 x 사이의 개수

KIMYEONGJUN·2026년 7월 11일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

Main78 sol = new Main78();로 객체를 생성한다.
예시 입력 문자열 두 개를 선언 후 solution 메서드를 호출해 결과를 받는다.
Arrays.toString을 이용해 결과 배열을 문자열 형태로 출력한다.
myString.split("x", -1)
여기에서 "x"를 기준으로 문자열을 분리한다.
두 번째 매개변수 -1은 문자열 끝에 빈 문자열이 포함되도록 한다.
즉, "x"가 문자열 끝에 있을 때도 빈 문자열이 결과에 들어온다.
String[] parts 배열에 분리된 문자열들이 담긴다.
int[] answer = new int[parts.length];
부분 문자열의 개수만큼 정수 배열을 만든다.
for 반복문을 통해 각 부분 문자열의 길이를 answer 배열에 저장한다.
parts[i].length()는 부분 문자열의 문자 수를 의미한다.
최종적으로 각 "x" 사이 문자열의 길이 배열인 answer를 반환한다.

코드로 구현

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

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 x 사이의 개수
public class Main78 {
    public static void main(String[] args) {
        Main78 sol = new Main78();

        String myString1 = "oxooxoxxox";
        int[] result1 = sol.solution(myString1);
        System.out.println(Arrays.toString(result1));  // [1, 2, 1, 0, 1, 0]

        String myString2 = "xabcxdefxghi";
        int[] result2 = sol.solution(myString2);
        System.out.println(Arrays.toString(result2));  // [0, 3, 3, 3]
    }

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

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글