ice rabbit programming

[LeetCode] May Challenge 8 - Valid Perfect Square 본문

PS/LeetCode

[LeetCode] May Challenge 8 - Valid Perfect Square

판교토끼 2020. 5. 10. 20:19

6일차 문제는 이전에 풀었던 문제였고, 7일차 문제는 풀지 않았다. 확실히 하루 안 하니 안 풀어도 상관없다는 마음가짐이..ㅠㅠ

https://leetcode.com/problems/valid-perfect-square/

 

Valid Perfect Square - 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

이번 문제는 정사각형, 즉 주어진 수가 제곱수인지 판별하는 문제였다. 단 기본 제공하는 sqrt와 같은 함수를 사용하면 의미가 없으므로 쓰지 않는다. 루트를 씌우는 근사식을 통해 구현하였다.

public class Solution {
    public bool IsPerfectSquare(int num) {
        if(num==1)
            return true;
        double x = num / 2;

        for (int i = 0; i < 100; i++) x = (x + num / x) / 2d;

        int compare = (int) x;
        if(x == compare)
            return true;
        else
            return false;
    }
}

인터넷을 통해 수식을 찾아 100회 정도 반복해서 정숫값과 일치 여부를 확인해 통과는 했지만, 정확한 값은 아니고 근삿값이라는 한계와, 수식을 살펴봤는데 제대로 이해하지 못하였다. 학부 선형대수/공업수학 이후로 수학을 놓아서.. 틈틈이 필요한 분야는 조금씩 봐야할 것 같은 교훈을 받았다.