문제설명
- I, V, X, L, C, D, M 까지 각각의 로마 문자에 해당하는 정수값이 있음
- 같은 문자를 나열해 더하거나 정수값이 큰 문자 다음 작은 문자를 나열해 둘을 더함
- 하지만 4와 9를 표현하려면 IV, IX처럼 정수값이 작은 문자가 앞에 와 두 값을 뺌
- 입력한 문자열 s를 정수값으로 반환
- 참고자료
  
제한조건
- 문자열 s의 길이는 1이상 15이하
- 문자열 s의 정수값 범위는 1이상 3999이하
풀이
var romanToInt = function(s) {
    const alphabet = {
        I: 1,
        V: 5,
        X: 10,
        L: 50,
        C: 100,
        D: 500,
        M: 1000
    }
    const sArr = s.split(''); 
    const nArr = []; 
    let alphabetSum = 0; 
    sArr.map((value,idx)=>{
        
        if(sArr[idx] !== sArr[idx+1]){
            
            if(alphabet[sArr[idx]] < alphabet[sArr[idx+1]]){
                alphabetSum += alphabet[value];
                nArr.push(alphabetSum * -1);
                alphabetSum = 0;
            }
            
            else{
                alphabetSum += alphabet[value];
                nArr.push(alphabetSum);
                alphabetSum = 0;
            }
        }
        
        else
            alphabetSum += alphabet[value];
    });
    return nArr.reduce((sum,cur)=> sum + cur,0);
};
체크포인트
- 문자열 인덱스 범위 밖에서 요소를 찾을 경우 undefined를 반환
- reduce 메소드로 정수합 누적 계산