
Solution 1) 내 풀이
class Solution {
public String[] solution(String[] strArr) {
for (int i = 0; i < strArr.length; i++) {
if (i % 2 == 0) {
strArr[i] = strArr[i].toLowerCase();
} else {
strArr[i] = strArr[i].toUpperCase();
}
}
return strArr;
}
}
Solution 2) 다른 사람의 풀이
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] strArr) {
return IntStream.range(0, strArr.length).mapToObj(i -> i % 2 == 0 ? strArr[i].toLowerCase() : strArr[i].toUpperCase()).toArray(String[]::new);
}
}
코드 및 문제 리뷰
String 배열에서 홀수번째 요소들은 대문자로, 짝수번째 요소들은 소문자로 변환하여 배열을 반환하는 문제이다.
간단하게 반복문으로 풀이해봤으나 스트림의 활용도를 늘려가야할 것 같아 희표좌의 스트림도 참고로 가져와 봤다.
IntStream.range로 범위를 설정해준 뒤 mapToObj를 이용해 각각의 배열 요소에 다음을 시행한다.
i -> i % 2 == 0 ? strArr[i].toLowerCase() : strArr[i].toUpperCase()
mapToObj는 IntStream의 요소를 다른 데이터 타입으로 변환하기 위해 사용되며 현재는 int 타입에서 String 타입으로 변환 되는 모습이다.
이후 toArray(String[]::new)를 통해 다시 문자열로 변환 후 반환하는 모습이다.
IntStream.range(0, strArr.length).
mapToObj(i -> i % 2 == 0 ? strArr[i].toLowerCase() : strArr[i].toUpperCase().toArray(String[]::new);
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| [프로그래머스 기초_java] 특정한 문자를 대문자로 바꾸기 (0) | 2023.11.01 |
|---|---|
| [프로그래머스 기초_java] A 강조하기 (0) | 2023.11.01 |
| [프로그래머스 기초_java] 원하는 문자열 찾기 (0) | 2023.10.31 |
| [프로그래머스 기초_java] 길이에 따른 연산 (0) | 2023.10.31 |
| [프로그래머스 기초_java] 1로 만들기 (0) | 2023.10.31 |