본문 바로가기
코테연습

98. 이것이 코딩 테스트다 6장 : 성적이 낮은 순서로 학생 출력하기 Javascript

by hxunz 2022. 9. 1.

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - 성적이 낮은 순서대로 학생의 이름을 출력하라
  • 주어진 자료는 무엇인가?
     - N = 학생 수 

     - a = 학생의 이름과 성적
  • 조건은 무엇인가?
     - 1 <= N <= 100,000
     - 학생의 성적은 100이하의 정수이다.

2. 계획

  • 이 문제를 푸는데 있어서 유용하게 쓸 수 있는 지식은 무엇인가?
     - object와 sort()
  1. 성적 낮은순서대로 정렬한다.
  2. 공백으로 구분해서 출력한다.

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.

const solution = (N, a) => {
  // 성적 낮은순서대로 정렬한다.
  const sortable = Object.fromEntries(
    Object.entries(a).sort(([, a], [, b]) => a - b)
  );

  // 공백으로 구분해서 출력한다.
  const name = Object.keys(sortable).join(' ');
  return name;
};

test('sort', () => {
  expect(solution(2, { '홍길동': 95, '이순신': 77 })).toEqual('이순신 홍길동');
});

 

댓글