자바스크립트 신기한 문제. (스테픈 2km)
1 comment
오늘 유튜브를 보다가 되게 간단하다면 간단한 문제인데
신기한 부분을 알게되었다.
018 - 015 라고 쓰여있어서 앞에 0만 빼고 계산하라는거라 생각했으나.
자바스크립트 엔진에서 018은 10진수로 18로 계산하지만
015는 8진수로 10진수로 표현하면 13이 된다.
여태 전혀 모르고 있던 부분인데
내용을 좀 찾아보니 es6 이전에는 8진수를 표현할때 0부터 시작했었다고 한다.
그래서 015 로 시작하면 8진수인데
8진수는 0부터 7까지만 표현되니
018같은 7을 넘어가는 숫자가 있다면 바로 10진수로 표현해서
018-015 의 숫자를 계산하면 10진수 18과 8진수 -> 10진수로 변환 = 13
18 - 13 이 된다.
이 문제도 생각치도 못했는데
정답이 banana가 된다.
b+a => ba
++a => 숫자로 변형할 수 없는 문자이기 때문에 NaN (not a number)
+a = baNaNa . tolowerCase()
banana가 된다.
안다고 생각해도 아는게 아닌듯함
sort메서드는 정렬을 해주는 메서드인데
직접 써보니 정렬을 하면서 사전순으로 처리하는듯 하다.
앞 숫자 순으로 2 <3< 8
앞 숫자만 비교해서 앞으로 분배하면 답이 나오는데
sort 메서드는 배열의 내용물을 문자로 변환한뒤 정렬하는 특징이 있다.
그래서 문자열로 보면 앞글자로 비교해서ㅗ 순서가 정해진다는점..
스테픈도 2km완료
Comments