https://www.acmicpc.net/problem/13909
더보기
이 문제는 의외로 되게 단순한데,
예를 들어
1번 창문이면,
1번이 열음
2번 창문이면,
1번이 열음, 2번이 닫음
8번 창문이면,
1번이 열음 / 2번이 닫음 / 4번이 열음 / 8번이 닫음.
9번 창문이면,
1번이 열음 / 3번이 닫음 / 9번이 열음
여기까지 봤다면 규칙성이 보인다.
창문이 열리려면 반드시 홀수가 되어야 하고, 홀수가 되려면 특정 값의 제곱이 되어야한다.
그 안에 제곱이 몇 개 있는지는 어떻게 알거나면, 받은 사람의 수를 제곱근 하고 소수점을 떼어버리면 해당 수 내부에 제곱근이 몇 개인지 알 수 있으므로 제곱이 몇 개인지 알 수 있다.
예를 들어 문제의 예시인 24개를 제곱하면
4.XXXXXXX
가 나오는데,
1의 제곱인 1
2의 제곱인 4
3의 제곱인 9
4의 제곱인 16
총 4개의 값이 해당 갯수 안에 존재한다.
이를 코드로 쓰면,
import kotlin.math.floor
import kotlin.math.sqrt
fun main(args: Array<String>) {
question13909()
}
fun question13909() {
val person = readln().toInt()
val sqrt = sqrt(person.toDouble())
val open = floor(sqrt)
println(open.toInt())
}
이렇게 간단한 코드로 끝난다.
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 2346번 문제풀이 (0) | 2024.04.04 |
---|---|
Kotlin] 백준 9012번 문제풀이 (0) | 2024.04.03 |
Kotlin] 백준 2485번 문제풀이 (0) | 2024.03.26 |
Kotlin] 백준 11650번 풀이 (0) | 2024.03.14 |
Kotlin] 백준 10989번 문제풀이 (0) | 2024.03.13 |