일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 자바스크립트 split()
- 자바스크립트 날씨 웹 만들기
- 부트캠프
- 프로그래머스
- [파이썬 실습] 기초 문제
- RN 프로젝트
- 코딩부트캠프
- 날씨 웹 만들기
- leetcode
- 엘리스 ai 트랙
- 프론트개발공부
- 자바스크립트
- [AI 5기] 연습 문제집
- HTML
- 삼항연산자
- 엘리스 AI 트랙 5기
- 개발공부
- [파이썬 실습] 심화 문제
- 개발일기
- 간단한 날씨 웹 만들기
- 프론트개발
- 자바스크립트 reduce()
- 코드스테이츠
- JavaScript
- [파이썬 실습] 중급 문제
- 엘리스
- 리트코드
- reactnativecli
- 자바스크립트 sort()
- 자바스크립트 날씨
- Today
- Total
개발조각
[리트코드] 29. Divide Two Integers 본문
안녕하세요. 개발조각입니다.😊
이번 문제는 내장 함수를 쓰면 쉬운 문제라
내장 함수 쓰고 끝내버렸습니다.
https://leetcode.com/problems/divide-two-integers/
Divide Two Integers - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
이문제는 dividend / divisor 한 값에 소수점을 버리고 정수부 분만 가지고 오는 문제입니다.
Math.floor()를 생각하실 수 있겠지만 아쉽게도 Math.floor()은 -2.7335일 경우에는 -3이 됩니다.
그래서 다른 방법으로 풀어야 되는 문제입니다.
해결방안
var divide = function(dividend, divisor) {
let div = String(dividend / divisor);
if(div > (2**31 -1)) return 2**31 -1;
else if(div < (-2)**31) return (-2)**31;
let idx = div.indexOf('.');
return idx < 0 ? div : div.slice(0, idx)
};
저는 어떻게 구했나면
- dividend / divisor 구하고 문자열로 바꾸기
- '.'의 앞에 오는 숫자 문자열만 남기기
이렇게 구했습니다.
이러면 웬만하면 다 해결이 되지만 2가지 경우에 대해 문제가 생깁니다.
1. dividend / divisor를 해주었을 때 소수점이 안 나오고 정수일 경우
이 경우에는 dividend / divisor값을 바로 리턴해 주었습니다.
2. dividend / divisor이 -2의 31승보다 작거나 2의 31승 -1 보다 클 경우
-2의 31승보다 작으면 -2의 31승을 리턴해주어야 되고
2의 31승 -1 보다 클 경우 2의 31승 -1을 리턴해주어야 됩니다.
return idx < 0 ? div : div.slice(0, idx)
1번의 경우 아래와 같이 작성을 하여 구분해 주었고
if(div > (2**31 -1)) return 2**31 -1;
else if(div < (-2)**31) return (-2)**31;
2번의 경우 이와 같이 작성해주어 해당되면 바로 리턴되게 했습니다.


'알고리즘🅰 > 리트코드' 카테고리의 다른 글
[리트코드] 34. Find First and Last Position of Element in Sorted Array (0) | 2022.09.30 |
---|---|
[리트코드] 35. Search Insert Position (0) | 2022.09.30 |
[리트코드] 28. Find the Index of the First Occurrence in a String (0) | 2022.09.27 |
[리트코드] 27. Remove Element (0) | 2022.09.26 |
[리트코드] 26. Remove Duplicates from Sorted Array (0) | 2022.09.25 |