boj 1011번 문제를 통해 접하게된 sqrt() 함수에 대하여.

 풀이를 접하고 sqrt() 함수가 있어서 그동안 sqrt()함수를 사용할 일이 없어서 생소하여서 sqrt()함수에 대해서 검색해보았다. 

이와같이 sqrt()함수는 제곱근을 반환해준다는것, 그리고 반환값은 double 형식으로 반환한다는걸 주의해야겠다. 

 

++++++++++++++++++++

추가적으로 boj 1011번 문제의 경우 이 과정을 이해하고 풀이를 하는데 있어서 여러가지 해설들과 풀이방법들을 보았는데,

 그중에서 바로 이해가 되는 풀이방법이 있는 블로그와, 그리고 조금 이해해해보면 도움이 될 것 같은 풀이가 있는 블로그를 첨부해본다. 

 

https://codesyun.tistory.com/62

 

[BOJ/백준] 1011번 Fly me to the Alpha Centauri C++ 문제 풀이

단계별로 풀어보기 - 수학 1 단계 - [8단계] 1011번 문제 문제 링크 : www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미

codesyun.tistory.com

 

일단 이 블로그에 있는 풀이의 경우 경우들을 나누어서 경우들마다 구분지어서 출력문을 나누어서 해결하는것이 그나마 이해하귀 쉬운 편에 속한다고 볼 수 있을것 같고, 

 

https://cryptosalamander.tistory.com/25

 

[백준 / BOJ] - 1011번 Fly me to the Alpha Centauri C++ 풀이

백준 - 단계별로 풀어보기 [1011] https://www.acmicpc.net/problem/1011 문제 처음 이동 할 때 -1, 0 , 1 을 이동할 수 있는 우주선은, 항상 k광년 이동시마다 k-1, k, k+1 광년만큼만 다시 이동할 수 있다. x지점에

cryptosalamander.tistory.com

 

이 블로그에 있는 내용은 ceil함수를 이용해서 경우들을 수에 따라서 갈라지게 만드는 풀이가 기존에 접한 풀이와 비슷한 면이 있어서 이것도 이해하면 도움이 될 만한 풀이라는 생각이 든다. 

 

그리고 기존에 접한 풀이법의 경우 아직도 완벽하게 이해하는것이 쉽지 않은  상황인데, 이 풀이 자체도 이해한다면 과정을 아주 쉽게 만들어 줄 수 있는 풀이라는 생각이 든다. 

이 풀이를 함께 첨부하고, 그리고 관련있는 링크도 다음에 다시 들어가서 확인해볼 수 있도록 하자. 

// Authored by : heheHwang
// Co-authored by : -
// http://boj.kr/50fe25ca96ad4e8d8484f3a336d06db9
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
ll solve(ll k) {
  return floor(2 * sqrt(k) - 1e-9);
}
int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  int tc;
  cin >> tc;
  ll x, y;
  while (tc--) {
    cin >> x >> y;
    cout << solve(y - x) << '\n';
  }
}
/*
다음 공간이동으로 이동할 수 있는 최대 거리의 역
A033638		Quarter-squares plus 1
https://oeis.org/A033638
*/

 

boj 1011번 문제의 경우는 아직 전체적인 풀이 방법에 대한 이해가 완벽하게 이루어지지 않았으므로, 위에 첨부한 내용들을 다시 공부해보면서 이해가 깊어질때까지 그대로 두고 다음에 다시 공부해보도록 하자. 

 

  Comments,     Trackbacks