백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 1755 , 숫자놀이 [정렬]
문제 출처
https://www.acmicpc.net/problem/1755
1755번: 숫자놀이
79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로
www.acmicpc.net
정답
const input = require("fs").readFileSync("/dev/stdin").toString().trim();
const dic = {
1: "one",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
8: "eight",
9: "nine",
0: "zero",
};
// 숫자를 받아서 영어로 변환
const Change = (S) => {
S = String(S);
const tmp = [];
for (let i = 0; i < S.length; i++) {
tmp.push(dic[Number(S[i])]);
}
return tmp;
};
const [start, end] = input.split(" ").map(Number);
const check = [...new Array(end - start + 1)].map(() => []);
let j = 0;
for (let i = start; i <= end; i++) {
check[j].push(i);
let result = Change(i);
check[j] = [...check[j], ...result];
j += 1;
}
check.sort((a, b) => {
if (a[1] > b[1]) return 1;
if (a[1] < b[1]) return -1;
if (a[2] > b[2]) return 1;
if (a[2] < b[2]) return -1;
});
let answer = "";
for (let i = 0; i < end - start + 1; i++) {
answer += check[i][0];
if ((i + 1) % 10 !== 0 || i != end - start) {
answer += " ";
}
if ((i + 1) % 10 == 0 || i == end - start) {
console.log(answer);
answer = "";
}
}
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 1138 , 한 줄로 서기 [구현] (0) | 2022.09.09 |
---|---|
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 20291 , 파일 정리 [정렬] (1) | 2022.09.08 |
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 1431, 시리얼 번호 [정렬] (0) | 2022.09.06 |
백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 1946 , 신입 사원 [정렬] (0) | 2022.09.06 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 1015 , 수열 정렬 [정렬] (0) | 2022.09.06 |