문제
[문자열] [stream]
https://school.programmers.co.kr/learn/courses/30/lessons/181867
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해설1
class Solution {
public int[] solution(String myString) {
String[] answer = myString.split("x", -1); // 빈 문자열도 유지하기 위해 두 번째 인자에 -1 사용
int[] result = new int[answer.length];
for (int i = 0; i < answer.length; i++) {
result[i] = answer[i].length();
}
return result;
}
}
- 문제에서 "x"를 기준으로 나눴을 때 빈 문자열도 저장이 되어야 한다고 나와있다.
- split("x", -1)을 하기 되면 빈 문자열도 유지되도록 설정이 된다. [2번째 인자에 -1을 넣어줌]
- 반복문을 통해 answer의 배열 안에 있는 문자열 길이를 result 배열에 저장해준다.
해설2 (stream 사용하기)
import java.util.Arrays;
class Solution {
public int[] solution(String myString) {
return Arrays.stream(myString.split("x", myString.length()))
.mapToInt(x -> x.length())
.toArray();
}
}
Arrays.stream(myString.split("x", -1))
- 주어진 문자열 myString을 "x"를 기준으로 분할 한 후, 분할된 부분 문자열을 배열로 반환
- split()의 2번째 인자는 -1을 넣어 빈 문자열도 유지하도록 설정
- 배열을 스트림으로 변환
.mapToInt(x -> x.length())
.toArray()
- 문자열의 길이를 int로 매핑
- 스트림의 요스들을 배열로 변환
반응형
'study > 코딩테스트' 카테고리의 다른 글
[프로그래머스][Lv0][Java] 문자열 잘라서 정렬하기 (0) | 2024.02.29 |
---|---|
[프로그래머스][Lv3][Java] 여행경로 (0) | 2024.01.25 |
[프로그래머스][Lv1][Java] 모의고사 (1) | 2023.12.29 |
[프로그래머스][Lv2][Java] 카펫 (0) | 2023.12.28 |
[프로그래머스][Lv2][Java] H-Index (0) | 2023.12.28 |