2021_04_01

유지원·2021년 4월 1일
0
post-thumbnail
post-custom-banner

TIL - HA 문제 복습

[Test 5]

문제) 사람들의 정보를 담은 배열을 입력받아 조건에 맞게 각 개인의 전체 이름을 요소로 갖는 배열을 리턴한다. 단, 사람들의 전체 이름은 각 개인의 나이순(오름차순)으로 정렬되어야 한다.

입출력)

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();

[Test 6]

문제) 피보나치 수열을 순차적으로 출력하는 클로저 형태의 함수를 작성한다.

입출력)

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를 리턴한다.

profile
안녕하세요 유지원입니다
post-custom-banner

0개의 댓글