
내가 생각했을때 문제에서 원하는부분
문자열 배열 strlist가 매개변수로 주어집니다.
strlist 각 원소의 길이를 담은 배열을 return하도록 solution 함수를 완성해주세요.
내가 이 문제를 보고 생각해본 부분
Solution8 sol = new Solution8();
Solution8 클래스 안에 있는 메서드를 사용하기 위해 객체를 생성하는 코드이다.
String[] strlist1 / String[] strlist2
테스트를 진행하기 위해 문제에 제시된 두 가지 예시 입력값을 배열에 각각 담아두는 코드이다.
sol.solution(...)
만든 객체의 solution 메서드에 배열을 전달하여 글자 수 길이를 계산하도록 명령한다.
System.out.println(Arrays.toString(...));
자바에서 배열을 그냥 출력하면 컴퓨터 주소값이 나오기 때문에, 안의 내용을 예쁘게 보여주는 Arrays.toString()을 사용해 콘솔에 출력한다.
int[] answer = new int[strlist.length];
결과로 돌려줄 정수 배열(answer)을 생성한다. 입력받은 문자열 배열의 개수와 똑같은 크기의 방을 만들어야 하므로 strlist.length를 사용한다.
for (int i = 0; i < strlist.length; i++)
첫 번째 단어부터 마지막 단어까지 순서대로 하나씩 확인하기 위해 반복문을 돌린다.
answer[i] = strlist[i].length();
현재 순서의 문자열(strlist[i])의 길이를 .length() 메서드로 구한 뒤, 그 숫자를 정수 배열의 해당 칸(answer[i])에 집어넣는다.
return answer;
모든 단어의 길이가 담긴 최종 정수 배열을 메서드 밖으로 반환한다.
코드로 구현
class Solution {
public int[] solution(String[] strlist) {
int[] answer = new int[strlist.length];
for (int i = 0; i < strlist.length; i++) {
answer[i] = strlist[i].length();
}
return answer;
}
}
프로그래머스 코드
package programmers.programmers2;
import java.util.Arrays;
// 프로그래머스 배열 원소의 길이
public class Main163 {
public static void main(String[] args) {
// Solution 객체 생성
Solution8 sol = new Solution8();
// 1. 첫 번째 입출력 예시 테스트
String[] strlist1 = {"We", "are", "the", "world!"};
int[] result1 = sol.solution(strlist1);
System.out.println(Arrays.toString(result1));
// 출력 예상: [2, 3, 3, 6]
// 2. 두 번째 입출력 예시 테스트
String[] strlist2 = {"I", "Love", "Programmers."};
int[] result2 = sol.solution(strlist2);
System.out.println(Arrays.toString(result2));
// 출력 예상: [1, 4, 12]
}
}
// 프로그래머스 제출용 Solution 클래스
class Solution8 {
public int[] solution(String[] strlist) {
int[] answer = new int[strlist.length];
for (int i = 0; i < strlist.length; i++) {
answer[i] = strlist[i].length();
}
return answer;
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.