Programmers

[프로그래머스][JS] 배열 원소의 길이

winter17 2023. 4. 3. 21:32

https://school.programmers.co.kr/learn/courses/30/lessons/120854?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정

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

주어진 배열의 길이를 세고 반복문을 돌려서 인덱스로 배열을 순회하는데

순회할 때마다 각 문자열의 길이를 세고 그 부분을 변수에 저장을 한다

그리고 answer이라는 새 배열을 선언하고 push메서드를 통해 빈 배열에 채워 넣는다


리뷰

splice() 메서드를 사용해서 풀어보려고 했는데 실패하고 push로 풀었다

splice는 배열의 요소를 삭제, 추가할 때 사용하는 메서드이고

문제는 문자열의 길이를 세어서 배열에 추가하면 된다고 생각했는데

function solution(strlist) {
  const answer = [];
  for (let i = 0; i < strlist.length; i++) {
    const strlen = strlist[i].length;
    strlist.splice(i, 1, strlen);
    answer.push(strlen);
  }
  return answer;
}

splice()메서드는 삭제한 요소들을 반환하므로 answer 변수에 배열 대신에 문자열의 길이를 할당해야 한다.

위의 노란 부분이 내가 생각하지 못한 부분이다. splice 메서드를 answer에 할당하도록 코드를 짰기 때문에 틀렸었다