Skip to content

Commit 8cf0e31

Browse files
[BOJ] 9627 문장 (S3)
1 parent 9ad5769 commit 8cf0e31

2 files changed

Lines changed: 88 additions & 9 deletions

File tree

서정우/5주차/260130.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
const fs = require("fs");
2+
const filePath = process.platform === "linux" ? "/dev/stdin" : "./서정우/input.txt";
3+
const input = fs.readFileSync(filePath).toString().trim().split("\n");
4+
5+
const lines = input.slice(1);
6+
7+
// 특정 수를 제외한 글자의 수
8+
const length = lines.reduce((acc, cur) => acc + cur.length, 0) - 1;
9+
10+
const nums1 = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"];
11+
const nums2 = [
12+
"",
13+
"eleven",
14+
"twelve",
15+
"thirteen",
16+
"fourteen",
17+
"fifteen",
18+
"sixteen",
19+
"seventeen",
20+
"eighteen",
21+
"nineteen",
22+
];
23+
const digits10 = [
24+
"",
25+
"",
26+
"twenty",
27+
"thirty",
28+
"forty",
29+
"fifty",
30+
"sixty",
31+
"seventy",
32+
"eighty",
33+
"ninety",
34+
];
35+
const digit100 = [
36+
"",
37+
"onehundred",
38+
"twohundred",
39+
"threehundred",
40+
"fourhundred",
41+
"fivehundred",
42+
"sixhundred",
43+
"sevenhundred",
44+
"eighthundred",
45+
"ninehundred",
46+
];
47+
48+
const generateNumberString = (num) => {
49+
if (num <= 10) {
50+
return nums1[num];
51+
} else if (10 < num && num < 20) {
52+
return nums2[num - 10];
53+
} else if (20 <= num && num < 100) {
54+
const digit10 = Math.floor(num / 10);
55+
const digit1 = num % 10;
56+
if (digit1 === 0) {
57+
return digits10[digit10];
58+
} else {
59+
return digits10[digit10] + nums1[digit1];
60+
}
61+
} else if (100 <= num && num < 1000) {
62+
const digit100Place = Math.floor(num / 100);
63+
const remainder = num % 100;
64+
if (remainder === 0) {
65+
return digit100[digit100Place];
66+
} else {
67+
return digit100[digit100Place] + generateNumberString(remainder);
68+
}
69+
}
70+
};
71+
72+
if (length === 0) {
73+
console.log("four");
74+
}
75+
76+
for (let i = length; i < 1000; i++) {
77+
if (length + generateNumberString(i).length === i) {
78+
console.log(
79+
lines
80+
.map((line) => (line === "$" ? generateNumberString(i) : line))
81+
.join(" ")
82+
.trim(),
83+
);
84+
break;
85+
}
86+
}

서정우/input.txt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,2 @@
1-
8
2-
1 1
3-
2 1
4-
1 1
5-
4 1
6-
3 0
7-
5 1
8-
4 0
9-
1 0
1+
1
2+
$

0 commit comments

Comments
 (0)