Skip to content

Commit 6168a62

Browse files
committed
[leet] 로마숫자 바꾸기 (mid)
1 parent 8e56d78 commit 6168a62

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

허현빈/7주차/260213-1.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/**
2+
* @param {string} s
3+
* @return {number}
4+
*/
5+
var romanToInt = function(s) {
6+
const val = {
7+
"I":1,
8+
"V":5,
9+
"X":10,
10+
"L":50,
11+
"C":100,
12+
"D":500,
13+
"M":1000,
14+
}
15+
16+
let ans = 0;
17+
for(let i = 0; i < s.length ; i ++){
18+
if(s[i] === "I"){
19+
if(s[i+1] === "V"){
20+
ans += 4
21+
i++
22+
continue
23+
}else if(s[i+1] === "X"){
24+
ans += 9
25+
i++
26+
continue
27+
}
28+
}else if(s[i] === "X"){
29+
if(s[i+1] === "L"){
30+
ans+= 40
31+
i++
32+
continue
33+
34+
}else if(s[i+1] === "C"){
35+
ans+= 90
36+
i++
37+
continue
38+
}
39+
40+
}else if(s[i] === "C"){
41+
if(s[i+1] === "D"){
42+
ans+=400
43+
i++
44+
continue
45+
}else if(s[i+1] ==="M"){
46+
ans += 900
47+
i++
48+
continue
49+
}
50+
}
51+
52+
ans += val[s[i]]
53+
}
54+
return ans
55+
};

허현빈/7주차/260214-2.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* @param {number} num
3+
* @return {string}
4+
*/
5+
var intToRoman = function(n1) {
6+
const numStr = n1.toString();
7+
const len = numStr.length;
8+
9+
const map = new Map([
10+
[1, "I"], [5, "V"], [10, "X"],
11+
[50, "L"], [100, "C"], [500, "D"], [1000, "M"]
12+
]);
13+
14+
let ans = "";
15+
16+
for (let i = 0; i < len; i++) {
17+
const val = parseInt(numStr[i]);
18+
const power = Math.pow(10, len - 1 - i);
19+
20+
const one = map.get(power);
21+
const five = map.get(power * 5);
22+
const ten = map.get(power * 10);
23+
24+
if (val === 9) {
25+
ans += one + ten;
26+
} else if (val >= 5) {
27+
ans += five;
28+
for (let j = 0; j < val - 5; j++) {
29+
ans += one;
30+
}
31+
} else if (val === 4) {
32+
ans += one + five;
33+
} else {
34+
for (let j = 0; j < val; j++) {
35+
ans += one;
36+
}
37+
}
38+
}
39+
return ans;
40+
};

0 commit comments

Comments
 (0)