1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
- 성적이 낮은 순서대로 학생의 이름을 출력하라
- 주어진 자료는 무엇인가?
- N = 학생 수
- a = 학생의 이름과 성적
- 조건은 무엇인가?
- 1 <= N <= 100,000
- 학생의 성적은 100이하의 정수이다.
2. 계획
- 이 문제를 푸는데 있어서 유용하게 쓸 수 있는 지식은 무엇인가?
- object와 sort()
- 성적 낮은순서대로 정렬한다.
- 공백으로 구분해서 출력한다.
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('이순신 홍길동');
});
댓글