Jayksss DEV
article thumbnail
문제 설명
실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.

제한사항
0 ≤ flo ≤ 100

 

내 풀이:

아주 무식한 방법이다. 왜 Math 함수가 떠오르지 않았을까😵‍💫

 

function solution(flo) {
    var answer = Number(String(flo).split(".")[0]);
    return answer;
}

 

다른 풀이:

아래 풀이 요약 : ~x = -(x + 1)이고, ~~x = x의 정수부분😜

const solution = flo => ~~flo;

첫 번째 ~: 소수점을 잘라내고 음수 변환.
두 번째 ~: 다시 원래 숫자로 복원하며 소수점 이하를 제거.
결론적으로, ex) ~~55.12는 소수점 이하를 버리고 정수 부분 55만 반환합니다.

~~는 간결하고 빠르지만, 큰 숫자나 음수에서도 정확한 결과를 보장하려면
Math.trunc()나 Math.floor()를 더 추천합니다.
라고 한다.

추가적으로, 아래와 같은 사항도 있다.
비트 NOT 연산(~)은 단순히 양수를 음수로 만드는 것이 아니라,
2의 보수 체계를 사용하기 때문에 -(원래 숫자 + 1)로 계산됩니다.
따라서, ~55는 -(55 + 1) = -56이 됩니다.

 

그외정답들
var answer = Math.trunc(flo);
return parseInt(flo);
const solution = flo => Math.floor(flo);

 

profile

Jayksss DEV

@Jayksss

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!