https://www.acmicpc.net/problem/2292
풀이
더보기
방을 보면
1번을 기점으로 2번째 줄은 2 ~7까지 6개, 3번줄은 8~19개까지 12개, 4번줄은 20~37개로 6 * n으로 늘어나는걸 볼 수 있다.
따라서, 방 숫자를 받으면 방 숫자를 더하면서 찾아야 한다. 만약 선을 넘었다면 브레이크를 밟아야(?) 하므로 while문을 돌면서 전체 룸 수가 내가 찾아야 할 룸 수보다 많으면 반복문을 탈출하고, 아니면 다음번째 선으로 넘어가기 위해 카운트를 올린다. 이 때, 선의 갯수가 방을 통과하기 위한 최소갯수이다.
그리고 도착지점을 포함해야하므로 카운트에 +1 해야한다.
fun main(args: Array<String>) {
question2292()
}
fun question2292() {
var room = readLine()!!.toInt()
var count = 0
var allRoomCount = 1
while (true) {
allRoomCount += count * 6
if(room <= allRoomCount) {
break
}
count += 1
}
println(count + 1)
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 10989번 문제풀이 (0) | 2024.03.13 |
---|---|
Kotlin] 백준 1193번 문제풀이 (0) | 2023.06.19 |
Kotlin] 백준 2903번 문제풀이 (0) | 2023.06.16 |
Kotlin] 백준 2720번 문제풀이 (0) | 2023.06.15 |
Kotlin] 백준 11005번 문제풀이 (0) | 2023.06.15 |