풀이
- 간단한 문제이지만 알지 못했던 자바 메서드를 사용했기에 정리하려 포스팅.
- 파이썬에서는 int(x**(1/2))와 같이 작성하면 되는걸
- 자바에서는 어떻게 작성해야하나 싶었는데
- 우선 Math.sqrt(x)를 넣어주게 되면 되고 이걸 Math.floor() 에 넣어줘서 소수 부분을 버리기.
- 이후 (int)로 정수화 시켜 해결.
- 그리고 만약 (1/2)가 아닌 가변의 값이라면 어떻게 해야하는지 궁금해서 찾아보니
- Math.pow()로 첫 번째 인자로 x를 넣고, 두 번째 인자로 원하는 값을 넣는 건데
- 이때 모든 인자의 값은 정수가 아닌 실수로 넣어줘야 한다는 것을 주의하기
- 해결 코드 아래에 Math.pow()적용 법에 대한 코드 또한 함께 첨부.
class Solution {
public int solution(int n) {
int result = 0;
for (int i=1; i<= (int) Math.floor(Math.sqrt(n)); i++) {
if (n%i==0) {
int x = n/i;
if (x!=i) result += x;
result += i;
}
}
return result;
}
}
public class Main {
public static void main(String[] args) {
double base = 16; // 기준값
double exponent = 0.5; // 1/2는 제곱근을 의미
double result = Math.pow(base, exponent); // 제곱근 계산
int intResult = (int) Math.floor(result); // 소수 부분을 버리고 정수로 변환
System.out.println(intResult); // 결과 출력
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 숫자 변환하기 (0) | 2024.03.22 |
---|---|
[프로그래머스, 파이썬] 롤케이크 자르기 (0) | 2024.03.22 |
[프로그래머스, 자바] 자릿수 더하기 (0) | 2024.03.20 |
[프로그래머스, 자바] 유한소수 판별하기 (0) | 2024.03.20 |
[프로그래머스, 자바] 문자열 밀기 (0) | 2024.03.19 |