[JavaScript] 자바스크립트 퀴즈 Ⅱ

productuidev·2022년 3월 22일
0

VanillaJS

목록 보기
2/11
post-thumbnail

Vanilla JavaScript 연습 퀴즈 2탄 풀기 🔥 (출처 : 바닐라코딩)


🔥 JavaScript Quiz Ⅱ

(from Starter-Kit JavaScript Part3)

📢 Rule

  • 주어진 조건을 충족하는 함수를 작성
  • 각 문제마다 테이블이 주어지는데 테이블의 왼쪽 열은 함수의 인자로 들어갈 목록이 나와있고, 오른쪽 열은 인자 값으로 함수를 실행 시 나오는 return 값이 있음
  • 코드의 예쁨, 효율성 등은 아직 고려하지 말고, 정확도만을 기준으로 작업
  • 정렬 관련 메소드(Array.prototype.sort) 혹은 정규 표현식 관련 메소드(String.prototype.replace, String.prototype.match 등)은 아직 사용하지 말 것 (정렬을 하고 싶다면 직접 정렬하는 로직을 구현)
  • 각 문제에 대한 전체적인 정답은 검색 X, 본인이 풀고자하는 아이디어 내에서 세부적인 작업에 대한 검색은 가능

예시

function add(a, b) {
	return a+b;
}
인자1, 인자2return 값
1, 23
10, 2030
50, 100150

☑️ Quiz #1 켄을 찾아라

문자열 요소로 이루어진 배열이 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요.

  1. 인자로 들어 배열의 요소 중 문자열 "Ken"의 인덱스를 찾을 수 있어야 합니다.
  2. 인덱스를 찾은 후 "켄은 1에 있다" 라는 형식의 문자열이 리턴되어야 합니다.
  3. 문자열 "Ken"의 위치와, 배열 요소의 갯수와 상관없이 함수는 정상적으로 작동되어야 합니다.
  4. 배열 요소에 "Ken"이 중복되거나, 존재하지 않는 경우는 없습니다.
  • 빈 배열이 주어질 경우는 고려하지 않아도 됨
인자return 값
'Jett', 'Leo', 'Ken', 'Justin'켄은 2에 있다
'Lee', 'Park', 'Jung', 'Ken'켄은 3에 있다

> Codepen에서 풀기

👉 My answer #1 (2개 배열, for문, filter, includes, indexOf)

const person1 = ["Jett", "Leo", "Ken", "Justin"];
const person2 = ["Lee", "Park", "Jung", "Ken"];

const arr1 = person1.indexOf("Ken");
const arr2 = person2.indexOf("Ken");

function findKen(array){
  const ken = person1.filter((x) => person2.includes(x)).toString();
  console.log(`${ken}은 ${array}에 있다.`);
} 

findKen(arr1); // Ken은 2에 있다.
findKen(arr2); // Ken은 3에 있다. 

☑️ Quiz #2 바코바코바코바

숫자가 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

  1. 인자가 1인 경우 문자열 "바"를 반환해야 합니다.
  2. 인자가 2인 경우 문자열 "바코"를 반환해야 합니다.
  3. 인자가 3인 경우 문자열 "바코바"를 반환해야 합니다.
  • 주어진 인자는 항상 1 이상 입니다.
  • repeat 메서드를 사용하지 말고 직접 구현해 주세요.
인자return 값
1"바"
2"바코"
3"바코바"
4"바코바코"
5"바코바코바"
6"바코바코바코"

> Codepen에서 풀기

👉 My answer #2-1 (2개 배열, for문)

const arrList = [1, 2, 3, 4, 5, 6];
const charList = ["바", "바코", "바코바", "바코바코", "바코바코바", "바코바코바코"];

function baCo(arr, char) {
  console.log(`${arr} : "${char}"`);
}

for (let i = 0; i < arrList.length; i++) {
  baCo(arrList[i], charList[i]);
} 

👉 My answer #2-2 (배열 key/value, for...in문)

const arrayChar = {
  1: '바', 2: '바코', 3: '바코바',
  4: '바코바코', 5: '바코바코바', 6: '바코바코바코'
}

for (let key in arrayChar){
 console.log(`${key}: "${arrayChar[key]}"`);
}

☑️ Quiz #3 가장 작은 수

숫자 요소로 이루어진 배열이 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

  1. 인자로 주어 배열의 숫자 중 가장 작은 숫자를 반환해야 합니다.
  2. 배열 내의 숫자가 중복되는 경우는 없습니다.
  • 빈 배열이 주어질 경우는 고려하지 않아도 됩니다.
인자return 값
[5,4,3,2,1]1
[4,5,1,2,3]1
[10,7,13,2,6]2

> Codepen에서 풀기

👉 My Answer #3 (Math.min.apply)

const arr1 = [5,4,3,2,1];
const arr2 = [4,5,1,2,3];
const arr3 = [10,7,13,2,6];

function minValue(arr){
  const minVal = Math.min.apply(null, arr);
  console.log(minVal);
}

minValue(arr1); // 1
minValue(arr2); // 1
minValue(arr3); // 2

☑️ Quiz #4 묻고 더블로

숫자 요소로 이루어진 배열이 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

  1. 인자로 주어진 배열 요소가 2번 반복되는 새로운 배열이 반환되어야 합니다.
  2. 반환된 배열은 인자로 들어간 배열 길이의 2배가 되어야 합니다.
  • 빈 배열이 주어질 경우는 고려하지 않아도 됩니다.
인자return 값
[1,2][1,2,1,2]
[1,2,3][1,2,3,1,2,3]
[5,7,3,1][5,7,3,1,5,7,3,1]

> Codepen에서 풀기

👉 My answer #4 (new Array, push, concat)

const arr = new Array();

function doubleArr(double){
  arr.push(double); 
  console.log(double.concat(double));
}
 
doubleArr([1,2]);
doubleArr([1,2,3]);
doubleArr([5,7,3,1]);

☑️ Quiz #5 숫자 쪼개기

숫자가 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

  1. 주어진 정수 각 자릿수의 "숫자"를 요소로 가지는 배열을 반환해야 합니다.
  2. 반환된 배열의 요소는 "문자열"이 아닌 "숫자"가 되어야 합니다.
  • 음수, 소수점 등은 고려하지 않습니다.
인자return 값
2854[2,8,5,4]
96586[9,6,5,8,6]
136326[1,3,6,3,2,6]

> Codepen에서 풀기

👉 My Answer #5 (toString, split, map(Number))

function splitNum(num){
  const str = num.toString().split('');
  const strToNum = str.map(Number);
  console.log(strToNum);
}

splitNum(2854); // [2,8,5,4]
splitNum(96586); // [9,6,5,8,6]
splitNum(136326); // [1,3,6,3,2,6]

☑️ Quiz #6 객체 만들기

첫 번째 인자로 문자열로 이루어진 배열, 두 번째 인자로 숫자로 이루어진 배열이 들어왔을 때 두 가지 배열의 각 요소를 key, value로 가지는 객체를 생성하려 합니다. 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

  1. 객체를 반환해야 합니다.
  2. 객체의 key 값은 첫 번째 인자의 요소가 됩니다.
  3. 객체의 value 값은 두 번째 인자의 요소가 됩니다.
  4. 첫 번째 인자, 두 번째 인자로 들어온 배열의 길이는 같습니다.
  • 빈 배열이 주어질 경우는 고려하지 않아도 됩니다.
인자1, 인자2return 값
['A','B','C'], [10, 20, 30]{A: 10, B: 20, C: 30}
['D','E','F','G'], [7, 4, 6, 8]{D: 7, E: 4, F: 6, G: 8}
['Jett','Ken'], [30, 40]{Jett: 30, Ken: 40}

> Codepen에서 풀기

👉 Answer #6

푸는 중(~ing)

참조

profile
필요한 내용을 공부하고 저장합니다.

0개의 댓글