이것저것

BOJ - 1011. Fly me to the Alpha Centauri 본문

Problem Solving

BOJ - 1011. Fly me to the Alpha Centauri

nays111 2021. 1. 7. 05:18

 

www.acmicpc.net/problem/1011

 

1011번: Fly me to the Alpha Centauri

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행

www.acmicpc.net

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