
내가 생각했을때 문제에서 원하는부분
문자열 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;
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.