관리 메뉴

공부기록용

JavaScript 문법 종합(연습04) 본문

✍️문제풀기✍️/JS_Programmers school

JavaScript 문법 종합(연습04)

과부하가즈아 2023. 5. 29. 20:30

Q1. 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 1,000
  • 0 ≤ n ≤ 1,000
function solution(array, n) {

    //리턴값으로 쓸 정수
    var answer = 0; 

    for ( i=0; i < array.length; i ++ ){
        if ( array[i] == n ){ //array의 i번째수와 매개변수 n이 같다면
            answer++;   //answer 1 증가
        }
    }

    return answer;
}

console.log(solution([1, 1, 2, 3, 4, 5], 1));

여러 방법 제시안

function solution(array, n) {
    return array.filter(v=>v===n).length;
}

 

Q2. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 ≤ numbers의 원소 ≤ 1,000
  • 1 ≤ numbers의 길이 ≤ 100
  • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
function solution(numbers) {
    var answer = 0;
    var sum = 0;

    for(let i = 0; i <numbers.length; i++){
        sum += numbers[i];
    }

    return answer = sum / numbers.length;
}

console.log(solution([89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]))

reduce알아보기

function solution(arr) {
  return arr.reduce((sum, current) => sum + current) / arr.length;
}
const reducer = (a, b) => a + b;
const array = [1, 2, 3, 4];

console.log(array.reduce(reduer));
// 10

 

Q3. 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

 

제한사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000
function solution(num_list) {
	var answer = [0, 0];
    // var answer = [];
    let a = 0;
    let b = 0;

    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] % 2 === 0) {
            a++;
        } else if (num_list[i] % 2 !== 0) {
            b++;
        }

    }
    return answer = [a, b];
}

console.log(solution([1, 2, 3, 4, 5]));

function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }
    
    return answer;
}
function solution(num_list) {
    var answer = [0, 0];

    for(let i = 0 ; i < num_list.length; i++){
        if(num_list[i] % 2 == 0) answer[0]++;
        else answer[1]++;
    }

    return answer;
}

 

Q4. 정수 배열 numbers와 정수 num1num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

 

제한사항

  • 2 ≤ numbers의 길이 ≤ 30
  • 0 ≤ numbers의 원소 ≤ 1,000
  • 0 ≤num1 < num2 < numbers의 길이
function solution(numbers, num1, num2) {

    var answer = [0, 0];
    
    let slicednumbers = numbers.slice(num1, num2+1);
    // .slice때문에 자꾸 num2전 인덱스까지 출력되던걸 +1을 붙여줌으로써 해결함

    return answer = slicednumbers

};

console.log(solution([1, 2, 3, 4, 5], 1, 3));
function solution(numbers, num1, num2) {
  var newNumbers = []
  for (let i = num1; i <= num2; i++) {
    newNumbers.push(numbers[i])
  }
  return newNumbers
}
function solution(numbers, num1, num2) {
  // for반복문
  // numbers.length == num1  ~  numbers. length == num2  자르기
  let answer = [];
  let j = 0;
  for (let i = 0; i < numbers.length; i++) {
    if (i >= num1 && i <= num2) {
      answer[j] = numbers[i];
      j++;
    }
  }
  return answer;
}

slice와splice의 비교

function solution(numbers, num1, num2) {
    return numbers.splice(num1, num2-num1+1);
}

 

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

 

제한사항

  • 1 ≤ strlist 원소의 길이 ≤ 100
  • strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.
function solution(strlist) {
  // answer 빈 배열 생성
  // for문 돌리기 
  // answer [인덱스] == strlist의 인덱스. 길이

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

 

Q6. 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 1 ≤ num_list의 길이 ≤ 1,000
  • 0 ≤ num_list의 원소 ≤ 1,000
function solution(num_list) {
  // new Array 생성
  // for 반복문 (let i = num_list.length; i >0; i--)
  // answer의 인덱스는 num.length-1 = num_list 인덱스는 i-1
  // answer 리턴

  let answer = []; // 빈 배열 생성
  for (let i = num_list.length; i > 0; i--) {
    // 반복문 돌려 i (큰 수 > 작은수)

    // num_list가 [1, 2, 3, 4, 5] 라고 했을 때, 
    // answer의 배열인덱스 [0, 1, 2, 3, 4]번째  = num_list[4, 3, 2, 1, 0] 번째 인덱스 (=5, 4, 3, 2, 1)
    answer[num_list.length - i] = num_list[i - 1];
  }
  return answer;
}
function solution(num_list) {
  let answer = [];
  for (i = 0; i < num_list.length; i++) {
    answer[i] = num_list[num_list.length - i - 1];
  }
  return answer;
}
function solution(num_list) {
    
    return num_list.reverse();

}

function solution(num_list) {
    var answer = [];
    var j = num_list.length
    for(var i = 1; i <= j; i++){
        answer.push(num_list[j-i])
    }
    return answer;
}

 

 

Q7. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers의 길이 ≤ 100
function solution(numbers) {
  // for 반복문 + 이중 for문
  let answer = 0;
  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      let max = numbers[i] * numbers[j];
      if(max > answer) answer = max
    }
  }
  return answer;
}
Comments