김미정(프로그래머스)
문제 1.
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
JavaScript
복사
풀이 1
// 1. 배열의 요소의 합을
=> ForEach
let sum = 0;
[1,2,3].forEach( (el) => {
sum = sum + el;
})
// 2. 배열의 길이로 나눈다
=> sum / 배열길이
<정답>
function solution(numbers) {
let sum = 0;
const length = numbers.length;
numbers.forEach(function(value){
sum += value
})
return sum / length
}
<오답>
function solution(...numbers) {
const sum = 0;
const length = numbers.length;
numbers.forEach(function(value){
value += sum / length
})
return;
}
JavaScript
복사
이예지(프로그래머스)
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
입출력 예
n result
1234 10
930211 16
JavaScript
복사
function solution(n) {
var answer = 0;
let num = String(n);
console.log(num);
for(let i = 0; i < num.length ; i++){
answer += Number(num[i]);
}
return answer;
}
JavaScript
복사
조원영 (프로그래머스)
문제
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. (0부터 시작)
입출력 예
s
"try hello world"
return
"TrY HeLlO WoRlD"
JavaScript
복사
function solution(s) {
let arr = s.split(' ');
let answer = [];
// arr = ['try', 'hello', 'world']
for (let i = 0; i < arr.length; i++) {
let temp = arr[i].split('');
// i = 0일 때, temp = ['t', 'r', 'y']
temp.forEach((a, j) => {
if (j % 2 == 0) {
temp[j] = a.toUpperCase();
} else {
temp[j] = a.toLowerCase();
}
});
// i = 0일 때, temp.join('') = 'TrY'
answer.push(temp.join(''));
}
// answer = ['Try', 'HeLlO', 'WoRlD']
// answer.join(' ') = 'TrY HeLlO WoRlD'
return answer.join(' ');
}
JavaScript
복사
김현태(프로그래머스)
function solution(name, yearning, photo) {
const answer = [];
const map = new Map();
for(let i = 0; i < name.length; i++){
map.set(name[i], yearning[i]);
}
for(let scene of photo){
let score = 0;
for(let person of scene){
if (map.has(person)){
score += map.get(person);
}
}
answer.push(score);
}
return answer;
}
JavaScript
복사
다른풀이 by 원영
function solution(name, yearning, photo) {
let answer = [];
for (let i = 0; i < photo.length; i++) {
let score = 0;
photo[i].forEach((a, j) => {
let index = name.indexOf(a);
if (index != -1) {
score += yearning[index];
}
});
answer.push(score);
}
return answer;
}
// 현태님 : indexOf()로 접근하면 map()으로 접근하는 것 보다 시간복잡도가 높다!
JavaScript
복사