BOJ[5635] - 생일 by JavaScript
생일
문제
언어
- JavaScript
순서도
- 학생들을 나이순으로 정렬
- 가장 나이가 많은 학생과 가장 나이가 적은 학생 출력
문제 풀이 step 1
- 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 문제입니다.
- 생일은 “이름 dd mm yyyy” 와 같은 형식으로 주어집니다. 이 문자열 형식에서 일, 월, 연도를 분리해서 오름차순으로 정렬해주고, 적절히 출력해주면 되겠습니다.
- 추가 설명은 주석으로 작성하겠습니다.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const n = Number(input[0]);
const list = input
.slice(1)
.map((v) => v.split(" "))
.sort((a, b) => {
const [_1, d1, m1, y1] = a.map(Number);
const [_2, d2, m2, y2] = b.map(Number);
// 연도, 월, 일 순으로 정렬
if (y1 !== y2) return y1 - y2;
if (m1 !== m2) return m1 - m2;
return d1 - d2;
});
// 적절히 출력
return `${list[n - 1][0]}\n${list[0][0]}`;
};
console.log(solution(input));