import java.io.*
import java.util.*
import kotlin.math.round
import kotlin.math.sqrt
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
//테스트케이스
val testCase = br.readLine().toInt()
for ( i in 1..testCase ) {
//X값과 Y값 구분
val xy = StringTokenizer(br.readLine())
val x = xy.nextToken().toInt()
val y = xy.nextToken().toInt()
//X값과 Y값을 뺀 값
val yMinusX = y - x
//yMinusX의 제곱근
var zeGop = sqrt(yMinusX.toDouble())
//yMinusX 제곱근을 반올림한 값
var roundUp = round(zeGop)
//y-x가 3이하면 그냥 출력
//y-x가 4 이상부터는 제곱근이 제곱근의 반올림값보다 크면 제곱근 * 2
//y-x가 4 이상부터는 제곱근이 제곱근의 반올림값보다 작으면 제곱근 * 2 - 1
when {
yMinusX <= 3 -> bw.write("$yMinusX\n")
zeGop > roundUp -> bw.write("${roundUp.toInt() * 2}\n")
zeGop <= roundUp -> bw.write("${roundUp.toInt() * 2 - 1}\n")
}
bw.flush()
}
bw.close()
}
단계9(수학1) 마지막문제 1011번이에요
일단 문제이해하는데에도 굉장히 오래걸렸어요
처음에 볼때는 그냥 Y 와 X를 뺀 값에서 반정도 날아가면 되지 않나 생각했는데
도착전에는 이동거리가 1이어야 하기 때문에 이 때문에 꼬인...
그냥 차근차근 표를 만들어서 보니 규칙이 나왔어요
또 제곱근에 힌트가 있다는 것도 접하고... 다음은 얼마나 어려울지 흑
반응형
'알고리즘 > 백준문제' 카테고리의 다른 글
백준 단계9 1011번 문제 코틀린 (0) | 2020.05.13 |
---|---|
백준 단계7 1065번 문제 코틀린 (0) | 2020.05.13 |
백준 단계6 4344번 문제 코틀린 (0) | 2020.05.13 |
백준 단계4 1110번 문제 코틀린 (0) | 2020.05.13 |
백준 단계3 10871번 문제 코틀린 (0) | 2020.05.13 |