백준
[백준] 1011 Fly me to the Alpha Centauri (JAVA)
sami355
2021. 11. 10. 21:55
https://www.acmicpc.net/problem/1011
1011번: Fly me to the Alpha Centauri
우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행
www.acmicpc.net
풀이
처음 보았을떄 어렵게 느껴져서 곰곰히 생각하다 스스로 반복문으로 해서 풀었다. 하지만 왜인지는 모르겠으나 오답처리가 되었고 다른 블로그를 보았다.
이번 문제의 경우는 카테고리가 수학이였는데 이러한 문제들을 풀때는 혼자 암산을 하거나 끄적거리면서 풀었는데 앞으로는 암산이 아닌 표형태로 풀어봐야 할것 같다.
풀이는 위의 블로그를 참고하였다.
코드
package com.company;
import org.w3c.dom.ls.LSOutput;
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine()) ;
for(int i=0; i<T; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int X = Integer.parseInt(st.nextToken());
int Y = Integer.parseInt(st.nextToken());
int distance = Y-X;
int max = (int)Math.sqrt(distance);
if(max == Math.sqrt(distance)){
sb.append(max *2 -1).append('\n');
}
else if(distance<= max*max + max){
sb.append(max*2).append('\n');
}
else sb.append(max*2 +1).append('\n');
}
System.out.println(sb);
}
}