반응형
밑의 링크는 백준에서의 문제 링크입니다.
파이썬 코드와 결과입니다.
# readline을 사용하기 위해 import합니다.
from sys import stdin
# isqrt를 사용하기 위해 import합니다.
from math import isqrt
# 첫째 줄에 양의 정수 N을 입력합니다.
# 항상 정수이며 길이는 800자리를 넘지 않습니다.
# 정수형으로 변환합니다.
N = int(stdin.readline())
# 정수 N의 제곱근을 출력합니다.
print(isqrt(N))
첫 번째로 제출했을 때는 isqrt 대신 N ** 0.5를 사용했더니 런타임 에러(OverflowError)가 떴습니다.
검색해보니 파이썬 math 모듈에 sqrt 함수말고 isqrt 함수를 사용하는 방법이 있었습니다.
isqrt를 사용하니 문제 자체는 풀 수 있었는데, 문제의 카테고리를 확인해보니
이분 탐색을 의도해서 푸는 문제였습니다.
실제로 그렇게 푼 사람도 있었습니다.
이분 탐색을 사용해서 다시 한 번 풀어봐야겠습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글