[Javascript] LV.0 배열 원소의 길이

은비·2023년 6월 28일
0

Programmers_CodingTest

목록 보기
13/72

문제 설명

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


제한사항

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

입출력 예

strlistresult
["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합니다.

✍ SOLUTION1

const solution = (strlist) => strlist.map(x=>x.length);

/* 내가 처음에 작성했던 코드이다. map 메서드를 이용해서 strlist의 원소의 길이를 리턴해주는
코드를 작성했다. 화살표 함수를 통해 작성해주었으며 화살표 함수에서 함수 내부의 내용이
return 값만 있다면 중괄호와 return을 생략하여 간단하게 작성해줄 수 있다. */
funcion solution(strlist) {
	return strlist.map(x=>x.length);
}

/* 위의 화살표 함수와 같은 코드이다. function 키워드로 만들어진 함수는 return을 생략할 수 없다. */

✍ SOLUTION2

function solution(strlist) {
  var answer = [];
  for (let i = 0; i < strlist.length; i++) {
    answer.push(strlist[i].length);
  }
  return answer;
}

/* 다른분의 풀이를 보다가 가져왔다. map과 동일한 방식이긴한데 for문을 통해서 strlist의 배열을
돌면서 answer의 배열에 strlist의 인덱스로 접근하여 length를 push해주는 방식이다.  */

✍ SOLUTION3

function solution(strlist) {
    const answer = []
    for (const i of strlist) {
        answer.push(i.length)
    }
    return answer;
}

/* 이것도 다른분의 풀이이다. 빈배열을 가진 answer 변수를 만들어주고 for of를 통해 
i.length를 push 해주었다. */

✍ SOLUTION4

function solution(strlist) {
    let answer = strlist.reduce((arr, value)=>{
        arr.push(value.length);
        return arr;
    },[])
    return answer;
}

/* 이것도 다른분의 풀이이다. reduce를 이용해서 코드를 작성하셨는데 초기값을 '[]'로 설정하여
배열로 만들어주고 push를 통해서 value의 length를 추가해주었다. 이런방법은 생각못했는데 신기했다! */

출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120854

0개의 댓글