문제) 사람들의 정보를 담은 배열을 입력받아 조건에 맞게 각 개인의 전체 이름을 요소로 갖는 배열을 리턴한다. 단, 사람들의 전체 이름은 각 개인의 나이순(오름차순)으로 정렬되어야 한다.
입출력)
let list = [ [ ['firstName', 'Joe'], ['age', 42], ['gender', 'male'], ], [ ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['gender', 'female'], ], [ ['lastName', 'Kim'], ['age', 40], ['gender', 'female'], ], ]; let output = test5(list); console.log(output); // --> ['Mary Jenkins', 'Kim', 'Joe'];
수도코드)
// 입력받은 배열을 객체로 변환한다. -> map, reduce
// 변환한 객체를 'age'를 기준으로 오름차순 정렬한다. -> sort
// 정렬된 요소들의 수만큼 반복문을 실행한다.
// 반복문 안에서 새로운 배열에 firstName과 lastName을 저장한다.
// 반복문이 끝나고 저장한 배열을 리턴한다.
// 숫자 정렬 newArr.sort(function(a, b) { return a - b; //오름차순 정렬 return b - a; //내림차순 정렬 } // 문자 정렬 fruit.sort();
문제) 피보나치 수열을 순차적으로 출력하는 클로저 형태의 함수를 작성한다.
입출력)
const fn = test6(); console.log(fn()); // --> 0 console.log(fn()); // --> 1 console.log(fn()); // --> 1 console.log(fn()); // --> 2 console.log(fn()); // --> 3 console.log(fn()); // --> 5
수도코드)
// 첫번쨰 피보나치 수라면 0을 리턴하고 value 라는 배열에 수를 저장한다.
// 두 번째 피보나치 수라면 1을 리턴하고 value 라는 배열에 수를 저장한다.
// 그렇지 않으면 앞에 두 피보나치 수를 더한다. -> value[0] + value[1]
// value에 다음에 더할 두 피보나치 수를 result 라는 변수에 더한다.
-> [value[1], value[0] + value[1]]
// result를 리턴한다.