본문 바로가기
알고리즘

[Kotlin] 백준 14248 점프 점프 런타임 에러

by 히예네 2025. 1. 22.
728x90
반응형

 

처음에는 왼쪽으로 갔다가, 인덱스를 벗어나면 다시 시작점으로 돌아온다. 이때는 오른쪽부터 간다. (왼쪽갔다 막히면 오른쪽으로 간다.)

방문여부 배열 [false, false, false, false, false]을 만들어서 이미 방문한 곳이라면 true로 바꿔준다. 

 

근데 문제가 너무 억지같아서 이해가 잘가지 않았다. 

그리고 input 받을 때 런타임에러가 계속 나서 찾아보았다. 입력 방식을 다르게 해야한다는걸 알았다. 

실버?? 문제부터는 input 받는 방식에도 평가 기준에 영향이 있는거같음.

 

전체코드

import java.util.LinkedList
import java.util.Queue
import java.util.Scanner
import kotlin.math.abs

fun main() {
    val scanner = Scanner(System.`in`)
    val n = scanner.nextInt()
    val inputArray = IntArray(n) { scanner.nextInt() }
    val start = scanner.nextInt() - 1
    val visited = BooleanArray(n)

    fun bfs(start: Int) {
        val queue: Queue<Int> = LinkedList()
        queue.add(start)
        visited[start] = true

        while (queue.isNotEmpty()) {
            val currentIndex = queue.poll()
            val currentValue = abs(inputArray[currentIndex])

            val leftIndex = currentIndex - currentValue
            if (leftIndex >= 0 && !visited[leftIndex]) {
                visited[leftIndex] = true
                queue.add(leftIndex)
            }

            val rightIndex = currentIndex + currentValue
            if (rightIndex < n && !visited[rightIndex]) {
                visited[rightIndex] = true
                queue.add(rightIndex)
            }
        }
    }
    bfs(start)
    val answer = visited.count { it }
    println(answer)
}

 

어렵다.. 

728x90
반응형

'알고리즘' 카테고리의 다른 글

[Kotlin] 백준 1926 그림 - BFS를 이용하여 문제 풀기  (0) 2025.01.19