티스토리 뷰
Question
Given a non-negative integer x, compute and return the square root of x.
Since the return type is an integer, the decimal digits are truncated, and only the integer part of the result is returned.
Note: You are not allowed to use any built-in exponent function or operator, such as pow(x, 0.5) or x ** 0.5.
음이 아닌 정수 x가 주어졌을 때, 제곱근 x를 구하여라.
다만 제곱근 x를 구할 때 소수점 아래수는 버린다.
Note: 내장 함수를 사용하면 안 된다.
제약사항
- 0 <= x <= 2^31 - 1
Solution
문제를 풀 때 고려한 사항
- return type은 integer
- 소수점 아래는 truncated 한다.
Solution1 (Linear Search)
class Solution {
public:
int mySqrt(int x) {
long i = 0;
while(1){
if((i * i <= x) && (x < (i+1) * (i+1))){
return i;
}
i++;
}
return -1; // not_found
}
};
주어진 숫자 x가 int형의 범위이기 때문에 46340번 루프를 돈 후 결과가 나온다.
int형의 범위로 제한 한다면 binary search를 통해서 searching 속도를 높일 수 있을 것 같다.
- Time complexity : O(n)
- Space Complexity : O(1)
Solution2 (Binary Search)
class Solution {
public:
int mySqrt(int x) {
long start = 0;
long end = 46340;
long mid;
while(start<=end){
mid = (start+end) / 2;
if((mid * mid <= x) && (x < (mid+1) * (mid+1)) ){
return mid;
}else if(mid*mid < x){
start = mid+1;
}else{
end = mid-1;
}
}
return -1; // not_found
}
};
- Time complexity : O(logN)
- Space Complexity : O(1)
출처 : https://leetcode.com/explore/interview/card/top-interview-questions-medium/113/math/819/
'IT > Problem Solving' 카테고리의 다른 글
[C++] LeetCode : Task Scheduler (0) | 2022.08.16 |
---|---|
[C++] LeetCode : Majority Element (0) | 2022.08.16 |
[C++] LeetCode : Pow(x, n) (0) | 2022.08.15 |
[C++] LeetCode : Excel Sheet Column Number (0) | 2022.08.15 |
[C++] LeetCode : Happy Number (0) | 2022.08.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 속초 맛집
- 러스트 배우기
- 속초
- coding interview
- 러스트
- 트리
- 반드시 알아야 할 자료구조
- 맛집
- LeetCode
- algorithm
- Medium
- interview question
- 내돈내산
- DP
- 알고리즘
- 러스트 입문
- 리트코드
- Interview
- 기술면접
- Problem Solving
- 러스트 기초
- 솔직후기
- 인터뷰
- 자료구조
- PS
- ProblemSolving
- C++
- Tree
- rust
- 코딩인터뷰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함