공log/[P&B]

[P&B] #20 PreCodingTest

ming_OoO 2023. 8. 7. 02:13
728x90

프리코딩테스트 2-2

 

3) Maximum Cubic Number

오답 노트 코드

class Solution {
    public static int solution(int n) {

        return (int) Math.pow((int) Math.cbrt(n), 3);

    }
}

 

문제 풀이 코멘트

  • Math.cbrt(n) 메서드: Math.cbrt(n)은 n의 세제곱근을 구하는 메서드. 즉, n의 세제곱근 값이 반환된다. 이 값은 실수 형태이므로 (int)를 사용하여 소수점을 버리고 가장 가까운 정수를 얻는다. 이 때, 이 값은 n보다 작거나 같은 양의 정수 중 가장 큰 세제곱근 값을 의미한다.
  • Math.pow(..., 3) 메서드: Math.pow(a, b)는 a의 b제곱을 구하는 메서드. 위에서 구한 세제곱근 값에 b로 3을 넣어주면 해당 값의 세제곱이 반환된다. 따라서 n보다 작거나 같은 양의 정수 중 가장 큰 세제곱 수를 구하는 것이 된다.

간단히 말하면, n의 세제곱근을 구한 뒤, 그 값을 소수점을 버리고 정수로 만들어서 다시 세제곱하여 가장 큰 세제곱 수를 구하는 것이다. 이러한 방식으로 양의 정수 n보다 작거나 같은 양의 정수 중 가장 큰 세제곱 수를 쉽게 구할 수 있다.

왜 내 코드에서 12점이 나온건지 모르겠지만 메서드 잘 쓰는 사람들 부럽다..

728x90