[BOJ Gold4]DSLR Kotlin
質問する
https://www.acmicpc.net/problem/9019
に答える
コード#コード#
import java.util.*
fun main() = with(System.`in`.bufferedReader()){
val n = readLine().toInt()
for(i in 1..n){
val (a,b) = readLine().split(" ").map{it.toInt()}
val visit = BooleanArray(10000){false}
val regist = Array(10000){""}
bfs(a,b, visit, regist)
}
}
fun bfs(start : Int, target : Int, visit : BooleanArray, regist : Array<String>){
val q = LinkedList<Int>()
q.add(start)
visit[start] = true
while(!q.isEmpty()){
val current = q.poll()
if(current==target){
println(regist[target])
return
}
val D = (current*2)%10000
val S = if(current==0) 9999 else current-1
val L = (current%1000) * 10 + current/1000
val R = (current%10) * 1000 + current/10
if(!visit[D]){
q.add(D);
visit[D]=true;
regist[D]=regist[current] + "D";
}
if(!visit[S]){
q.add(S);
visit[S]=true;
regist[S]=regist[current] + "S";
}
if(!visit[L]){
q.add(L);
visit[L]=true;
regist[L]=regist[current] + "L";
}
if(!visit[R]){
q.add(R);
visit[R]=true;
regist[R]=regist[current] + "R";
}
}
}
Reference
この問題について([BOJ Gold4]DSLR Kotlin), 我々は、より多くの情報をここで見つけました https://velog.io/@jihoon97/BOJ-골드4-DSLR-Kotlinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol