카테고리 없음

비트연산자 - 코딩테스트 (문자열을 정수로 바꾸기)

8나지 2024. 5. 27. 09:54

 

내 답

function solution(s) {
   if (1<=s.length && s.length<6) {
     return s.replace(/"/g,'');   
   } else {
       return ""
          }
    return answer;
}

 

정답

function solution(s) {

return (~~s)

}

 

???

 

처음 보는 유형이라 혹시나 하고 입력해보니 정답이여서 세상 당황

 

이 친구는 비트연산자인 ~를 두번 사용 하여 숫자형으로 변환하는 것인데

~s 해서 ~을 한번만 붙이면 -(x+1)을 실행하고

~~s 로 ~을 한 번 더 사용하면 반전이 되어 원래 값으로 돌아옴 

 

예시1  /  2

s = 42                                 /                     s = 3.14

~s = -43                            /                     ~s = -4

~~s = 42   (이때 숫자형으로 강제변환됨)  ~~s = 3