728x90
반응형
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.
입출력 예
my_string | n | result |
"hello" | 3 | "hhheeellllllooo" |
입출력 예 #1
- "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
[나의 풀이]
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.Collections;
import java.util.stream.Collectors;
class Solution {
public String solution(String my_string, int n) {
// return Arrays.stream(my_string.split("")).flatMap(el->Collections.nCopies(n, el).stream()).collect(Collectors.joining());
return Stream.of(my_string.split(""))
.flatMap(el->Collections
.nCopies(n, el)
.stream())
.collect(Collectors.joining());
}
}
flatMap(el -> Collections.nCopies(n, el).stream()) 풀이
Collections.nCopies(n, el)을 통해 el을 n번 만큼 복사한 List를 반환한 후 stream으로 변환한다.
List 등의 object로 감싸진 모든 원소를 단일 원소 스트림으로 반환하는 flatMap()을 통해 stream으로 반환해준다.
해당 stream을 모두 수집한 뒤 Collectors.joining()를 통해 문자열 데이터를 합한뒤 String으로 반환해준다.
[다른 풀이]
repeat() 활용한다.
Stream.of(my_string.split("")).map(el -> el.repeat(n)).collect(Collectors.joining());
728x90
반응형
'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글
[66] JAVA 정수부분 (1) | 2023.11.27 |
---|---|
[65] JAVA 배열 자르기 (1) | 2023.11.27 |
[63] JAVA 문자열로 변환 (1) | 2023.11.22 |
[62] JAVA 소문자로 바꾸기 (0) | 2023.11.22 |
[61] JAVA 글자 이어 붙여 문자 만들기 (0) | 2023.11.21 |