https://school.programmers.co.kr/learn/courses/30/lessons/12934
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
실행 시간 초과로 오답....
정답 1 :
더보기
class Solution {
public long solution(long n) {
long answer = -1;
long x=0;
while ( x * x != n) {
if (++x * x == n) {
return n + 2*x +1;
}
if (x >= n) {
return -1;
}
}
return answer;
}
}
정답 2 :
더보기
public class SquareCheck {
public static int checkAndReturn(int n) {
// n이 양의 정수인지 확인
if (n <= 0) {
return -1;
}
// x를 찾기 위해 제곱근을 계산
int x = (int) Math.sqrt(n);
// x의 제곱이 n과 같은지 확인
if (x * x == n) {
// x + 1의 제곱을 리턴
return (x + 1) * (x + 1);
} else {
// n이 제곱수가 아니면 -1 리턴
return -1;
}
}
Math.sqrt()
더보기
Math.sqrt()는 Java의 Math 클래스에 포함된 정적 메소드로, 주어진 숫자의 제곱근을 계산하여 반환합니다.
double result = Math.sqrt(double a);
- 매개변수: a는 제곱근을 구하고자 하는 숫자입니다. 이 값은 double 타입이어야 하며, 0 이상의 값을 가져야 합니다.
- 반환값: a의 제곱근을 반환합니다. 만약 a가 음수인 경우, 결과는 NaN(Not a Number)이 됩니다.
예시:
public class SquareRootExample {
public static void main(String[] args) {
double sqrt1 = Math.sqrt(16);
System.out.println(sqrt1); // 4.0
double sqrt2 = Math.sqrt(20);
System.out.println(sqrt2); // 약 4.472
double sqrt3 = Math.sqrt(-4);
System.out.println("The square root of " + num3 + " is " + sqrt3); // NaN
}
}
유의 사항:
- 음수 처리: Math.sqrt()에 음수를 전달하면 NaN을 반환하므로, 입력값이 음수인지 사전에 확인해야 합니다.
- 정수 제곱근: 결과는 항상 double 형식으로 반환됩니다. 만약 정수 제곱근을 원한다면, 결과를 int로 변환할 수 있지만, 이 경우 소수점 이하 부분은 버려집니다.
'문제 풀이 > 프로그래머스 알고리즘' 카테고리의 다른 글
핸드폰 번호 가리기 (0) | 2024.09.30 |
---|---|
나누어 떨어지는 숫자 배열 (1) | 2024.09.28 |
정수 내림차순으로 배치하기 // 반복문 안에서 collection 의 크기가 변경될 때 생기는 문제 (0) | 2024.09.27 |
프로그래머스) 햐샤드 수 - 재귀 함수, 재귀 메서드 (0) | 2024.09.25 |
프로그래머스) x만큼 간격이 있는 n개의 숫자 // 배열에 값 추가하기 + 주의 사항 (0) | 2024.09.24 |