Pair Coding Interview-02

benomadwill·2020년 3월 26일
0

Pair Coding Interview

목록 보기
3/7

제시 문제

/**
 * A Fibonacci sequence is a list of numbers that begins with 0 and 1, and each
 * subsequent number is the sum of the previous two.
 *
 * For example, the first five Fibonacci numbers are:
 *
 *   0 1 1 2 3
 *
 * If n were 4, your function should return 3; for 5, it should return 5.
 *
 * Write a function that accepts a number, n, and returns the nth Fibonacci
 * number. Use a recursive solution to this problem; if you finish with time
 * left over, implement an iterative solution.
 *
 * example usage:
 * nthFibonacci(2); // => 1
 * nthFibonacci(3); // => 2
 * nthFibonacci(4); // => 3
 * etc...
 *
 */

var nthFibonacci = function (n) {
  // TODO: implement me!
};

푼 문제

// BubbleSort

// 분석
// 1. 숫자로 이루어진 배열을 인풋 아웃풋 숫자로 이루어진 배열
// 2. 비교를 통해서 숫자를 작은 순서부터 큰 순서대로 재 정렬시키는 문제
// 3. for 문을 두번
// 4. 시간 복잡도는 n^2

// 수도 코드
// 1. 기준을 잡는다
// 2. for 반복문을 배열의 길이만큼
// 3. for 반복문을 배열의 길이만큼 반복
// 4. ex) 5.3.1.6.7.2.4.8
// 5. 기존의 배열을 리턴

let array1 = [5, 3, 1, 6, 7, 2, 4, 8];

function BubbleSort(array) {
  let count;
  for (let i = 0; i < array.length; i++) {
    for (let j = 0; j < array.length; j++) {
      if (array[j] > array[j + 1]) {
        count = array[j];
        array[j] = array[j + 1];
        array[j + 1] = count;
      }
    }
  }
  return array;
}

BubbleSort(array1);

// 많이 사용되지는 않지만 원리를 이해하기에 좋은 문제인 것 같아서 선택
//

보완할 점

  1. 풀이에 대해서 확신이 없어서 말이 길어지는 경향이 있다. 필요한 말만 할 수 있도록
  2. 접했던 문제였기 때문에 풀이 과정이 어느정도 그려졌다. 하지만 처음 보는 문제일 경우에는?

후기

알고리즘 문제의 필요성은 무엇일까?
정확한 답을 구하는 실력?
그보다는 문제를 접했을 때 어떻게 접근하고 해결해 나가는 모습을 보여주는 것 같다
아직 몇 번의 기회가 많이 남아있기 때문에
분명히 처음 접하는 문제가 있을 것이다
문제를 해결할 수 있다면 좋겠지만
30분이라는 짧은 시간 동안 어떤 모습을 보여줄 것인가에 집중해야겠다
체크리스트에 나와있는 대로만 행동해도 충분히 좋은 모습을 보여줄 수 있지 않을까?
페어 코딩 인터뷰가 다 끝나고 나면
프로그래머스 문제를 녹화를 하면서 푸는 습관을 들여야겠다

이상 여기까지
그럼 이만

profile
BenomadWill

0개의 댓글