728x90
문제 13706번
https://www.acmicpc.net/problem/13706
// 시간 초과 코드
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int s = 1, e = N, result;
while (s <= e) {
int mid = (s + e) / 2;
result = mid * mid;
if (result == N) {
cout << mid;
break;
}
else if (result > N) {
e = mid - 1;
}
else {
s = mid + 1;
}
}
return 0;
}
이번 문제.. 쉽게 풀 수 있을 줄 알았는데 N이 800자 이하고 C++은 bigInteger를 지원하지 않는다고 한다.
어떻게 풀지 계속 고민하고 검색하다가 머리가 너무 아파서 파이썬은 사기적으로 풀 수 있다길래 한번 파이썬으로 풀어보기로 했다....
import math
N = int(input())
print(math.isqrt(N))
어...?
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 2805번 - 나무 자르기 (0) | 2024.05.22 |
---|---|
[C++] 백준 13241번 - 최소공배수 (0) | 2024.05.21 |
[C++] 백준 2417번 - 정수 제곱근 (0) | 2024.05.19 |
[C++] 백준 4101번 - 크냐? (0) | 2024.05.18 |
[C++] 백준 1037번 - 약수 (0) | 2024.05.18 |