코딩테스트 - 프로그래머스/Lv. 0

[41] JAVA 배열 원소의 길이

유혁스쿨 2023. 11. 17. 11:10
728x90
반응형

문제 설명
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ strlist 원소의 길이 ≤ 100
  • strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.


입출력 예

strlist result
["We", "are", "the", "world!"]
[2, 3, 3, 6]
["I", "Love", "Programmers."] [1, 4, 12]

 

입출력 예 #1

  • ["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다.

입출력 예 #2

  • ["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다.

[나의 풀이]

import java.util.stream.Stream;

class Solution {
    public int[] solution(String[] strlist) {
        return Stream.of(strlist).mapToInt(el -> el.length()).toArray();
    }
}

 

[풀이과정] 

  1. Stream.of(array)를 통해 배열을 스트림으로 변환
  2. mapToInt()를 활용하여 각 문자열 요소의 길이를 순차적으로 반환하여 매핑
  3. 배열로 변환

[리팩토링]

mapToInt()에 들어갈 함수 형태를 String의 length()함수를 호출하여 메소드 참조 방식으로도 가능하다.

//메소드참조 전 코드
Stream.of(new String[]).mapToInt(el -> el.length()).toArray();
Stream.of(new String[]).mapToInt(el -> String.length(el)).toArray();
//메소드참조 후 코드
Stream.of(new String[]).mapToInt(String::length).toArray();

 


[다른 풀이]

 

별다른 매력적인 코드 없음

728x90
반응형