๋ก๋ง์์์ ์ซ์๋ก ๋ฐ๊พธ๊ธฐ
1~3999 ์ฌ์ด์ ๋ก๋ง์ s๋ฅผ ์ธ์๋ก ์ฃผ๋ฉด ๊ทธ์ ํด๋นํ๋ ์ซ์๋ฅผ ๋ฐํํด์ฃผ์ธ์.
๋ก๋ง ์ซ์๋ฅผ ์ซ์๋ก ํ๊ธฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ก๋ง์๋ฅผ ์ซ์ํ ๊ฐ์ ๊ณ์ฐํด์ ์ถ๋ ฅํ๊ธฐ
function romanToNum(s) {
const rome = {
'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' : 1000
}
let result = 0;
let injas = s.split(''); // [ 'I', 'I', 'I' ]
const injasValue = Object.values(s); // [ 'I', 'I', 'I' ]
for(index in injas){
let injas_value = injas[index]
result += rome[injas_value]
}
}
console.log(romanToNum('III')); //3
์ฒซ๋ฒ์งธ ์๋์์ ๋๋ฌด ์ด๋ ค์์ ์ผ๋จ ์ ์ผ ์ฝ๊ฒ ๊ตฌํ ์ ์๋
III์ ๊ฐ์ด๋ผ๋ ๊ตฌํด๋ณด์๋ผ๋ ์๊ฐ์ผ๋ก ์ฒซ๋ฒ์งธ ์๋๋ฅผ ํ๋ค.
์ฐ๋ฆฌ๋ ๋ก๋ง์์ ๊ฐ์ ์ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ result์ ๊ฐ์ 0์ผ๋ก ์ค์ ํด์ฃผ๊ณ
๋ฐ์์จ ๋งค๊ฐ๋ณ์(์ธ์๋ฅผ)์ ๊ธ์ ํ๋ํ๋๋ฅผ ์ชผ๊ฐ์ค๋ค.
์ธ์๋ฐฐ์ด๊ณผ ์ธ์๊ฐ ์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ ๋ก๋ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐ์์จ๋ค.
์ธ์์ค ์์ ์ธ๋ฑ์ค๊ฐ์ ๋๋ฉด์ injas_value๋ผ๋ ๋ณ์๋ ์ธ์์ค์ ์ธ๋ฑ์ค ๋ฐฐ์ด์ด๋ฉฐ,
result ๊ฐ์ ๋ํ๋ฉฐ ํ ๋นํด์ค๋ผ rome์ ์ธ๋ฑ์ค ๋ฐฐ์ด์.
Object.keys(rome);
Object.values(rome);
๊ฐ์ฒด์์ ๊ฐ์ ๋นผ์ค๋๊ฑฐ์ ์ง์ฐฉํ ๋๋จธ์ง...
injasValue
๋งค๊ฐ๋ณ์๊ฐ์ ๊ฐ์ ธ์จ๋ค๋ ๊ฑธ ์ดํดํ๊ธฐ ์ํ ๋ณ์๋ช ...์ธ์์ค...
์ ๋ง ๋ต๋ ์์๋ ์ฒซ๋ฒ์งธ ์๋
function romanToNum(s) {
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
const rome = {
'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' : 1000
}
let result = 0
const romeArray = s.split('') //I,V
const numArray = romeArray.map(obj => rome[obj]) //[1,5]
//obj = I,V
for (i=0; i<numArray.length; i++) {
if (numArray[i] < numArray[i+1] ) {
result -= numArray[i]
console.log(result)
} else {
result += numArray[i]
console.log(result)
}
}
return result
}
๋์ ํ ๋ก์ง์ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ ์ง ์ดํด๊ฐ ๋์ง ์์์ ๋ค๋ฅธ ๋๊ธฐ์ ๋์์ ๋ฐ์๋ค.
์ฒซ๋ฒ์งธ ์๋์ ๋๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ํ๋๊ฑด ๊ฐ์ด๋๊น result๋ฅผ 0์ผ๋ก ์ธํ
romeArray๋ฅผ ๋งค๊ฐ๋ณ์ s๋ฅผ ์ชผ๊ฐ์ค๊ฑธ ๋ด์์ค๋ค.
numArray๋ romeArray์ ๋ฐ์์ค๋ ์ธ์๊ฐ obj๋ฅผ ๋ฐ์์ค๋ฉด
rome์์์๋ I,V์ ๊ฐ์ ๊ฐ์ ธ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ด๋๋ค.
i=0, i๋ numArray์ ๊ธธ์ด๋ณด๋ค ์๊ฒ ๋ฐ๋ณต์ํค๊ณ ์กฐ๊ฑด์ด ๋ง๋ค๋ฉด i๊ฐ์ ์ฆ๊ฐ์์ผ๋ผ
์กฐ๊ฑด์์๋ numArray์ ์ธ๋ฑ์ค๊ฐ์ด numArray์ ์ธ๋ฑ์ค๊ฐ+1ํ ๊ฒ๋ณด๋ค ์๋ค๋ฉด
result์ numArray์ ์ธ๋ฑ์ค๊ฐ์ ๋นผ์ ํ ๋นํด์ฃผ๊ณ
๊ทธ๊ฒ ์๋๋ผ๋ฉด result๊ฐ์ numArray์ ์ธ๋ฑ์ค๊ฐ์ ๋ํด์ ํ ๋นํด์ค๋ค.
๋ฐ๋ณต๋ฌธ์ด ๋ค ๋์๊ฐ๊ณ result์ ํ ๋น๋ ๊ฐ์ ๋ฆฌํด์ํจ๋ค.
๋ด๊ฐ ์ด๋ฒ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์๊ฒ๋ ๋ฉ์๋์ ๋ํด ์๊ฐํ๊ฒ ๋ค. (์์ฃผ ๊ฐ๋จํ)
๊ฐ์ฒด๋ฅผ ์ง์ ํ ๊ตฌ๋ถ์(์ธ์๊ฐ)๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด๋ก ๋๋๋๋ค.
๋ฐ๋ณตํด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
๋ง์ ํ ๋น, ๋บ์ ํ ๋น