Learning Log/알고리즘

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

자척개 2023. 1. 26. 16:12
반응형

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

 

 

 

A.

내 답

let strlist = ["We", "are", "the", "world!"]

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

 

// output : ["2", "3", "3", "6"]

// 문제에서 요구하는 output은 [2, 3, 3, 6] 이었기 때문에 내 답은 틀린 답이다

 

 

 

더 좋은 답

1)

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

 

2)

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

 

 

 

문제 해결 과정

우선, 배열의 모든 인덱스에 접근해서 length를 받아오기 위해 for문을 돌렸다

그리고 나는 이걸 answer에 +=로 넣으려고 했다

내 answer의 초기값은 []였는데 그러다보니 length가 string으로 받아와졌다

어떻게 이걸 다시 number로 바꿔야하지 하다가 여기서 map을 써야하나 했다

다른 사람의 답을 보니 push를 써서 anwer에 넣어주면 되는 간단한 문제였다 하하,,

 

 

 

TIL

1. Array.prototype.push()

push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환한다

ex.

const animals = ['pigs', 'goats', 'sheep'];

const count = animals.push('cows');
console.log(count);
// Expected output: 4
console.log(animals);
// Expected output: Array ["pigs", "goats", "sheep", "cows"]

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push

 

 

2. Array.prototype.map()

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다

ex.

const array1 = [1, 4, 9, 16];

// Pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// Expected output: Array [2, 8, 18, 32]

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

반응형