본문 바로가기
Coding Test

230923 배열 원소의 길이 - Level 0

by mmm- 2023. 9. 23.

문제 설명

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

 

제한사항

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

 

입출력 예

 

입출력 설명

입출력 예 #1

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

입출력 예 #2

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

코드

class Solution {
    public int[] solution(String[] strlist) {
        int[] answer = {};
        int strlist_len = strlist.length;
        answer = new int[strlist_len];
        
        // strlist 배열의 i번째 자리에 있는 문자열의 길이를 answer 배열에 저장하여 리턴
        for(int i=0; i<strlist_len; i++) {
            answer[i] = strlist[i].length();
        }
        
        return answer;
    }
}

 

풀이

strlist배열의 각 자리에 있는 단어의 알파벳 갯수를 answer 배열에 넣어주는 문제이기 때문에 answer배열의 크기를 strlist만큼 할당해준다. 그 후, strlist.length만큼 for문을 돌려 strlist 배열에 저장된 문자열의 길이를 answer배열에 넣어주면 된다.


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.

import java.util.Arrays;

class Solution {
    public int[] solution(String[] strList) {
        return Arrays.stream(strList).mapToInt(String::length).toArray();
    }
}

 

문자열 배열 strList을 스트림으로 변환하여 mapToInt(String::length)를 사용해 각 스트림에서 문자열의 길이를 계산한 후, 정수 배열로 변환하는 것이다.

 

String::length는 메서드 레퍼런스이다.


정리

메서드 레퍼런스

  • 이중 콜론을 사용해 클래스 이름과 메서드 이름을 구분
  • 람다식과 달리 인수를 전달할 필요가 없음

 

이중콜론(::)은 메서드 레퍼런스의 연산자로, 왼쪽의 클래스나 객체에서 오른쪽의 메서드를 참조함을 나타낸다.

 

 

 

'Coding Test' 카테고리의 다른 글

230923 배열 자르기 - Level 0  (0) 2023.09.23
230923 편지 - Level 0  (0) 2023.09.23
230922 최댓값 만들기(1) - Level 0  (0) 2023.09.22
230922 점의 위치 구하기 - Level 0  (0) 2023.09.22
230921 가위 바위 보 - Level 0  (0) 2023.09.21