1. getType

임의의 값을 입력받아 타입을 리턴해야 합니다.

주의 사항
자바스크립트에서 array, null 타입은 존재하지 않지만, 이 둘을 구분하여 출력합니다.

입출력 예시
let output = getType('hello');
console.log(output); // --> 'string'

output = getType(10);
console.log(output); // --> 'number'

output = getType(true);
console.log(output); // --> 'boolean'

output = getType({ name: 'Steve' });
console.log(output); // --> 'object'

output = getType([100, 200, 300]);
console.log(output); // --> 'array'

힌트
자바스크립트에서 타입을 확인하는 방법을 검색해 봅니다. how to typecheck in 자바스크립트
배열의 타입을 확인하면 "object" 입니다. 배열을 따로 구분할 수 있는 방법을 검색해 봅니다.
 how to tell if an object is an array in 자바스크립트

내 풀이

function getType(anything) {

  if(typeof anything === 'object'){ 
    if(Array.isArray(anything)){ 
      return 'array';
    }
    if(anything === null){ 
      return 'null';
    }

    return typeof anything;

  }
  return typeof anything;
}

9. getLongestWord

## **문제**

문자열을 입력받아 문자열에서 가장 긴 단어를 리턴해야 합니다.

## **입력**

### **인자 1 : str**

- `string` 타입의 공백이 있는 알파벳 문자열

## **출력**

- `string` 타입을 리턴해야 합니다.

## **주의 사항**

- 단어는 공백 한 칸으로 구분합니다.
- 가장 긴 단어가 2개 이상이면 첫번째로 등장하는 단어를 리턴해야 합니다.

## **입출력 예시**

let output = getLongestWord('I love codestates'); console.log(output); // --> "codestates"

output = getLongestWord('Teamwork skills will take you anywhere'); console.log(output); // --> "Teamwork"

내 풀이


let arr = str.split(' ');

let max = arr[0].length;

let x=arr[0];

for(el of arr){

if(el.length > max){

max = el.length;

x = el;

}

//길이 비교 필요

//첫번째 요소와 비교

}

return x;

}

24. createPhoneNumber

## **문제**

0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴해야 합니다.

## **입력**

### **인자 1 : arr**

- `number` 타입을 요소로 갖는 배열
- `arr[i]`는 0 이상 9 이하의 정수
- 배열의 길이는 8 또는 11

## **출력**

- `string` 타입을 리턴해야 합니다.

## **주의 사항**

- 반복문(`for`, `while`) 사용은 금지됩니다.
- 배열의 길이가 8인 경우, 앞에 `[0, 1, 0]`이 있다고 가정합니다.

## **입출력 예시**

let output = createPhoneNumber([0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); console.log(output); // --> '(010)1234-5678'

output = createPhoneNumber([8, 7, 6, 5, 4, 3, 2, 1]); console.log(output); // --> '(010)8765-4321'

output = createPhoneNumber([0, 1, 1, 4, 3, 2, 1, 8, 7, 6, 5]); console.log(output); // --> '(011)4321-8765'


## **힌트**

- `Array.prototype.join`에 대해서 검색해 봅니다.

내 풀이

function createPhoneNumber(arr) {

  //배열의 길이 : 8 - (010) slice 3-8 + slice 8-
  //배열의 길이 : 11 - (0~2)
  //reference 보기
  let num = '(010)';
  let slice0 = arr.slice(0,3);
  let slice1 = arr.slice(3,7);
  let slice2 = arr.slice(7); 

  if(arr.length === 8){ 
    return num + arr.slice(0,4).join('')+'-'+arr.slice(4).join('');
  }else if(arr.length === 11){ 
    return '('+slice0.join('')+')'+ slice1.join('') + '-' + slice2.join('');
  }

}

25. fibonacci


문제
수(num)를 입력받아 num번째까지 총 num + 1개의 피보나치 수열을 리턴해야 합니다.

0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

입력
인자 1 : num
number 타입의 num (num은 0 이상의 정수)
출력
배열을 리턴해야 합니다.
주의 사항
반복문(for)문을 사용해야 합니다.
피보나치 수열은 0번부터 시작합니다.
입출력 예시
let output = fibonacci(5);
console.log(output[5]); // --> 5

output = fibonacci(9)[9];
console.log(output); // --> 34