문제 설명
실수 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);
'프로그래머스 > 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 부분 문자열인지 확인하기 (0) | 2025.01.21 |
---|---|
[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 문자열 돌리기 (0) | 2025.01.19 |
[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 문자열 붙여서 출력하기 (0) | 2024.11.17 |
[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 덧셈식 출력하기 (0) | 2024.11.16 |
[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 특수문자 출력하기 (0) | 2024.11.16 |