본문 바로가기
Algorithm

백준 입출력과 사칙연산 4 - [Node.js]

by Yoojacha 2022. 5. 25.

18108번 1998년생인 내가 태국에서는 2541년생?!

const fs = require('fs'); 
const inputData = fs.readFileSync("/dev/stdin").toString().trim(); 

console.log(inputData - 543)

- 이렇게 풀었는데 왜 이게 맞았는지 모르겠다. inputData는 toString()메소드로 인해서 문자열이 된 것이 아닌가? 

- inputData - 543은 543을 문자열로 새로 메모리에 할당해서 연산을 할거라고 봤는데 막상 돌려보니 정답이었다....

 

이유를 찾아보자

 

- toString()은 분명 문자열을 반환해주는 것이 맞다.

- trim()의 경우 파이썬의 strip()과 같은 기능이다. 좌우 공백 제거하는 기능!

--> 그렇다면 inputData 식별자는 값이 문자열 타입이라는 것을 알 수 있다. (typeof로 확인해봐도 string이다.)

 

--> console.log(543 - inputData)를 하면 문자열이 될까? 싶었지만 암묵적으로 inputData 식별자의 값이 숫자가 되는 것을 볼 수 있었다....왜지!? 모던 자바스크립트 딥 다이브에서는 마이너스 연산자에 대해 설명이 없었던 것 같은데.. 암묵적 타입 변환에 대해서 더 찾아본다.. 따로 정리해둬야겠다.

 

결론. 암묵적 타입 변환이 이루어지는 것이 맞다! JS 카테고리에 정리를 해야겠다.

'Algorithm' 카테고리의 다른 글

백준 문제 JS로 시작 2022.05.22  (0) 2022.05.22

댓글