article thumbnail image
Published 2023. 3. 21. 17:27

69.sqrt(x)

음수가 아닌 정수 x를 지정하면 x의 제곱근을 가장 가까운 정수로 반내림합니다.
반환된 정수도 음수가 아니어야 합니다.

예 1:
입력: x = 4
출력: 2
설명: 4의 제곱근은 2이므로 2를 반환합니다.

예 2:
입력: x = 8
출력: 2
설명: 8의 제곱근은 2.82842...이고, 가장 가까운 정수로 반내림하면 2가 반환됩니다.

 

문제 정리
x가 주어지면 x를 제곱근 했을때 가장 가까운 정수로 반내림 하는 문제이다.

조건
x는 음수가 아니다. 반드시 정수.

풀이 방법
1. x의 제곱근을 계산한다.
2.계산된 제곱근을 가장 가까운 정수로 반내림한다.
3.반내림된 정수가 음수인지 확인한다.
4. 반내림된 정수가 음수라면 0을 반환하고, 아니라면 정수 값을 반환한다.

 

작성코드📍

  function mySqrt(x) {
    let sqrtX = Math.sqrt(x); //Math.sqrt()는 x의 제곱근을 계산하는 함수
    let roundedSqrtX = Math.floor(sqrtX); //가장 가까운 정수로 반내림 한다.

    if (roundedSqrtX < 0) {
      //반내림된 정수가 음수인지 확인
      return 0;
    } else {
      return roundedSqrtX;
    }
  }

  let x = 8;
  console.log(mySqrt(x)); //출력 : 2

roundedSqrtX < 0 조건을 넣어서 확인해주는 이유?

x의 값이 음수인 경우의 수가 존재하기 때문이다.

제곱근 함수는 음수를 입력받을 수 없기 때문에, x가 음수인 경우에는 0을 반환하는 것이 올바른 결과이다.

예를 들어, mySqrt(-1) 함수를 실행하면 roundedSqrtX 값이 -1이 되고, 이때 roundedSqrtX < 0 조건이 true가 되므로 0을 반환하게 된다. 이렇게 하면 mySqrt() 함수는 항상 음수가 아닌 값에 대해서만 결과값을 반환할 수 있다.

'알고리즘 > leetCode' 카테고리의 다른 글

[leetcode] Plus One  (0) 2023.03.17
[leetcode] Length of Last Word  (1) 2023.03.17
[leetcode] Search Insert Position  (0) 2023.03.17
[leetcode] Find the Index of the First Occurrence in a String  (0) 2023.03.15
[leetcode] Remove Element  (0) 2023.03.14
복사했습니다!