Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 3진수
- Eventlitener
- 차집합
- filter()
- substring()
- useRef()
- includes()
- jsx반복문
- indexOf()
- useEffect()
- parseInt()
- reat if문
- sort()
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- 교집합
- map()
- toUpperCase()
- new Date()
- Math.floor()
- React
- Math.sqrt()
- repeat()
- charAt()
- useState()
- setDate
- getday()
- slice()
- isNaN()
- Number()
- 소수점 올림내림
Archives
- Today
- Total
개발자로 전향중
[프로그래머스] 정수 제곱근 판별 - 이진탐색 본문
문제 설명

문제풀이
function findNextSquare(n) {
let low = 1;
let high = n;
// 이진 탐색 시작
while (low <= high) {
let mid = Math.floor((low + high) / 2);
let square = mid * mid;
if (square === n) {
// n이 mid의 제곱이라면, (mid+1)의 제곱을 반환
return (mid + 1) * (mid + 1);
} else if (square < n) {
low = mid + 1; // 제곱이 n보다 작으면 더 큰 범위에서 탐색
} else {
high = mid - 1; // 제곱이 n보다 크면 더 작은 범위에서 탐색
}
}
// 제곱근을 찾지 못했을 때
return -1;
}
// 테스트 예시
console.log(findNextSquare(121)); // 144 (11^2 이므로 12^2 반환)
console.log(findNextSquare(625)); // 676 (25^2 이므로 26^2 반환)
console.log(findNextSquare(114)); // -1 (제곱수가 아니므로 -1 반환)'자료구조&알고리즘' 카테고리의 다른 글
| [프로그래머스] 행렬의 덧셈 - 이차원 배열 (0) | 2024.09.30 |
|---|---|
| [프로그래머스] 약수의 개수와 덧셈 (0) | 2024.09.30 |
| [프로그래머스] 문자열 내 p와 y의 개수 - 배열(빈도수 세기) (0) | 2024.09.24 |
| [프로그래머스] 정수 내림차순으로 배치하기 - 배열(지수정렬) (0) | 2024.09.24 |
| [프로그래머스] 자릿수 더하기 - 배열 (0) | 2024.09.24 |