정답 1
int 배열을 props 로 들어오는 String배열의 길이만큼 초기화해주고 향상된 for문을 통해서 각각의 String 요소들의 글자수를 구해서 초기에 초기화해줬던 int배열에 넣어줬다.
class Solution {
public int[] solution(String[] strlist) {
int[] resultArr = new int[strlist.length];
int i = 0;
for(String n : strlist) {
resultArr[i] = n.length();
i++;
}
return resultArr;
}
}
그 결과 정답은 맞았다.
하지만 분명 더 간단한 방법이 존재할것같아 다른사람들의 답을 확인해 보았다.
정답 2
import java.util.Arrays;
class Solution {
public int[] solution(String[] strlist) {
int[] result = Arrays.stream(strlist).mapToInt(str -> str.length()).toArray();
return result;
}
}
다른 사람의 답을 참고하여 Arrays.stream 에 mapToInt 라는 기능을 사용해보았다.
mapToInt 는 String 배열내 요소들을 하나하나 가져와 내부에 선언된 특정 로직을 거쳐 int 배열로 재조립 가능하게 만들어주는 역할을 하는것 같다. 내부 로직은 람다식(Arrow Function) 으로 처리 한다.
아래는 내가 참고한 답이다.
정답 3
import java.util.Arrays;
class Solution {
public int[] solution(String[] strList) {
return Arrays.stream(strList).mapToInt(String::length).toArray();
}
}
String::length 라는 기능이 참 재미있다. 기억을 더듬어 stream 에서 사용되는 기능들 내에 람다식을 사용할 수 있다고 알고있어 정답 2 처럼 적어봤는데 작동이 되서 기분이 좋았다.
Array.stream 이녀석,,, 좋다
Deep 한 공부가 필요해 보인다.
'프로그래머스 - 코딩테스트' 카테고리의 다른 글
[Java][프로그래머스] - LVL.0 배열 뒤집기 (1) | 2023.01.23 |
---|---|
[Java][프로그래머스] - LVL. 0 문자열 뒤집기 (1) | 2023.01.22 |
[Java][프로그래머스] - LVL.0 피자나눠먹기 (0) | 2023.01.22 |
[Java][프로그래머스] - LVL.0 아이스 아메리카노 (0) | 2023.01.22 |
[Java][프로그래머스] - LVL.0 배열의 평균값 (0) | 2023.01.21 |