[백준] 1697번 : 숨바꼭질 - Kotlin(코틀린)

강재원·2022년 12월 1일
0

[코딩테스트] Kotlin

목록 보기
120/125



https://www.acmicpc.net/problem/1697

import java.util.*;

var check=Array(0, {0})
var n: Int=0
var k: Int=0

fun bfs(a:Int){
    var q=LinkedList<Int>()
    var w=LinkedList<Int>()
    q.add(a)
    w.add(0)
    check[a]=1
    
    while(!q.isEmpty()){
        val v0=q.poll()
        val v1=w.poll()
        
        if(v0==k){
            print(v1)
            return
        }
        if(2*v0<=100000 && check[2*v0]==0){
            check[2*v0]=1
            q.add(2*v0)
            w.add(v1+1)
        }
        if(v0+1<=100000 && check[v0+1]==0){
            check[v0+1]=1
            q.add(v0+1)
            w.add(v1+1)
        }
        if(v0-1>=0 && check[v0-1]==0){
            check[v0-1]=1
            q.add(v0-1)
            w.add(v1+1)
        }
    }
}

fun main(args: Array<String>) {
    val s=Scanner(System.`in`)
    n=s.nextInt()
    k=s.nextInt()
    check=Array(100001,{0})
    bfs(n)
}
profile
개념정리 & 문법 정리 & 알고리즘 공부

0개의 댓글