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
'Learning Log > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 콜라 문제(js) (0) | 2023.07.31 |
---|---|
[알고리즘] 로마자에서 숫자로 바꾸기(js) (0) | 2023.01.30 |
[알고리즘] 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. (js) (0) | 2023.01.25 |
[알고리즘] 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. (js) (0) | 2023.01.25 |
[알고리즘] 자바스크립트 알고리즘 문제 : 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. (js) (0) | 2023.01.24 |