꿈꾸는 개발자의 devLog
[BaekJoon] "이진탐색" - 백준 2417번 문제 : 정수 제곱근 본문
반응형
[문제 설명]
https://www.acmicpc.net/problem/2417
2417번: 정수 제곱근
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
www.acmicpc.net
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램 작성
q^2 >=n 인 가장 작은 음이 아닌 정수 q 출력
[해결 로직]
- 일단 0과 n의 중간값을 찾음(0: start, end : n, mid : 이 둘의 중간 값)
- 그러고나서 중간에 있는 값을 제곱했을 때, n보다 크다면 end를 mid-1로 설정
- 그 반대라면 start를 mid + 1로 변경
- 꽤나 쉬운 문제지만.. 제곱근으로 어떻게 중간값을 내지?? 라는 생각뿐이었던 것 같다
[Solution 코드]
n = int(input())
l,r = 0, n
while True:
mid = (l+r)//2
if r < l:
break
if mid ** 2 >= n:
r = mid -1
else:
l = mid + 1
print(r+1)
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
[BaekJoon] "DFS/BFS" - 백준 7576번 문제 : 토마토 (1) | 2024.01.18 |
---|---|
[BaekJoon] "이진탐색" - 백준 2512번 문제 : 예산 (0) | 2024.01.18 |
[BaekJoon] "우선순위큐" - 백준 13975번 문제 : 파일합치기3 (0) | 2024.01.18 |
[BaekJoon] "구현" - 백준 10994번 문제 : 별 찍기 - 19 (0) | 2024.01.18 |
[BaekJoon] "완전탐색" - 백준 2422번 문제 : 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (0) | 2024.01.18 |
Comments