문제 설명
문자열 배열 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 |