코드카타 2주차

Steve·2021년 9월 27일
0

function romanToNum(s) {
  let answer = 0;
  const roman = {
    I: 1,
    V: 5,
    X: 10,
    L: 50,
    C: 100,
    D: 500,
    M: 1000,
  };
  for (let i = 0; i < s.length; i++) {
    if (roman[s[i]] < roman[s[i + 1]]) {
      // 마지막값 들어왔을때 undefined를 비교할 땐 무조건 '거짓'으로.
      answer -= roman[s[i]];
    } else {
      answer += roman[s[i]];
    }
  }
  return answer;
}

✅눈여겨 봐야할것들

1. 문자열도 배열처럼 뽑아서 쓸 수 있다.

ex) "ABCD"[0] // "A"
ex) "ABCD"[3] // "D"
ex) "ABCD"[4] // undefined

2. undefined는 falsy 값이다. 숫자와 비교하면 항상 거짓이다.

if(1 > undefined){
  console.log("참");
}else{
  console.log("거짓");
}

결론 :1보다 크든 작든 항상 "거짓"이 나온다

추가) truthy, falsy값엔 여러가지가 있다.

truthy는 값이 있다면 해당
falsy는 undefined,null,''등등

"false"와 "true"는 스트링이므로 값이있는거이셔 truthy한값.
최근 이거로 문제 삼아진적이 있어 적어놈

profile
Front-Dev

0개의 댓글