이것저것
BOJ - 1011. Fly me to the Alpha Centauri 본문
1. 시작점과 끝점은 중요하지 않고, 그 사이의 거리가 중요합니다.
2. 처음 시작은 1 마지막 시작은 1로 끝나야 합니다.
3. 아이디어가 딱히 떠오르지않아서 막무가내로 다 그려보고 적어보니깐 규칙이 발견되었습니다.
거리 | 작동횟수 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 3 |
5 | 4 |
6 | 4 |
7 | 5 |
8 | 5 |
9 | 5 |
10 | 6 |
11 | 6 |
12 | 6 |
13 | 7 |
14 | 7 |
15 | 7 |
이 규칙에 맞게 코드를 작성해주니 몇줄안되는 간략한 코드가 나왔습니다.
int main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
int t;
cin>>t;
for(int i=0;i<t;i++){
int a,b;
cin>>a>>b;
int dist = b-a;
int x = sqrt(dist);
if(dist == x*x){
cout<<2*x - 1<<'\n';
}else if(x*x+x<dist){
cout<<2*x + 1<<'\n';
}else{
cout<<2*x<<'\n';
}
}
return 0;
}
'Problem Solving' 카테고리의 다른 글
BOJ - 1406. 에디터 (0) | 2021.01.10 |
---|---|
BOJ - 2346. 풍선 터뜨리기 (0) | 2021.01.10 |
BOJ - 1158. 요세푸스 문제 (0) | 2021.01.10 |
BOJ - 1021. 회전하는 큐 (0) | 2021.01.09 |
BOJ - 1918. 후위 표기식 (0) | 2021.01.09 |
Comments