문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/181867
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한 사항
- 1 ≤ myString의 길이 ≤ 100,000
- myString은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예시
myString | result |
"oxooxoxxox" | [1, 2, 1, 0, 1, 0] |
"xabcxdefxghi" | [0, 3, 3, 3] |
코드 구현
class Solution {
public int[] solution(String myString) {
String[] strings = myString.split("x", -1);
int[] answer = new int[strings.length];
for(int i = 0; i < answer.length; i++) {
answer[i] = strings[i].length();
}
return answer;
}
}
풀이
- 해당 문제에서 중점적으로 봐야할 부분은 문자 'x'를 기준으로 나눈다는 것입니다.
- 문자열을 나누는 메서드는 split("정규식") 으로 알고 있습니다.
- 위의 기본 방식으로 첫번째 입력인 "oxooxoxxox" 을 사용하면 마지막 데이터인 0이 제외된 [1, 2, 1, 0, 1] 이 반환됩니다.
- 여기서 사용할 수 있는 방식은 split("정규식, limit") 입니다.
- limit가 0보다 큰 경우에는 limit의 개수만큼 split을 진행합니다.
- limit이 0보다 작은 경우에는 맨 뒤의 빈 값에 대해 모두 spilit을 진행하도록 합니다.
- 이를 통해 마지막 뒤의 빈 값을 추출하기 위해서 -1를 인자에 넣습니다.
- 문자열은 나눈 strings의 길이를 answer라는 int형 배열에 넣어서 초기화해줍니다.
- 초기화 이후에 strings.length를 answer에 넣어서 길이를 저장한 배열을 만들고 반환해줍니다.
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Java :: 전국 대회 선발 고사 (0) | 2024.03.23 |
---|---|
[프로그래머스] Java :: 2의 영역 (0) | 2024.03.23 |
[프로그래머스] Java :: 문자열 뒤집기 (0) | 2024.03.22 |
댓글