👩💻 BOJ 5566サイコロゲーム
7848 ワード
💬 アルゴリズムを解くのは久しぶりです.毎日解けます.
尚根は一人でスケートボードゲームをしています.このチェスゲームのボードはN格で構成されており,始点は1格,終点はN格である.どの欄にも指示事項が書いてあります.指示事項には馬をどれだけ動かすかが書かれています.
尚根はゴールに着く前に、サイコロを投げる回数でその格子に移動します.このとき、到着した格子に書いてある指示に従って馬を移動し直します.指示事項に移動し、到着した欄の指示に従わない.
N格に到着した時には、その格を越える場合も到着していました.
1つのプログラムを作成して、上根が投げる時サイコロの目と碁盤の上の指示を与える時、何度も到着します.
ボードのN個の数字をアレイに格納します. サイコロの数字で移動馬の位置を保存します.
-loc:盤上馬の位置 馬の位置の説明を使用して馬の位置を再保存します.
- 」馬の位置が変わるたびに、到着が確認されます.
-
📄 質問する
尚根は一人でスケートボードゲームをしています.このチェスゲームのボードはN格で構成されており,始点は1格,終点はN格である.どの欄にも指示事項が書いてあります.指示事項には馬をどれだけ動かすかが書かれています.
尚根はゴールに着く前に、サイコロを投げる回数でその格子に移動します.このとき、到着した格子に書いてある指示に従って馬を移動し直します.指示事項に移動し、到着した欄の指示に従わない.
N格に到着した時には、その格を越える場合も到着していました.
1つのプログラムを作成して、上根が投げる時サイコロの目と碁盤の上の指示を与える時、何度も到着します.
💡 解答方法
-loc:盤上馬の位置
-
loc = loc + tmp
-
if(loc >= N) ~
🔥 コード#コード#
import java.io.IOException;
import java.util.Scanner;
public class 주사위 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int map[] = new int[N+1];
for(int i = 1; i <= N; i++) {
map[i] = sc.nextInt();
}
int tmp = 1;
int loc = 1;
for(int i = 1; i <= M; i++) {
int mix = sc.nextInt(); // 주사위에서 나온 숫자
//System.out.println(map[mix]);
//System.out.print("loc");
//System.out.println(loc);
loc += mix; // 말의 위치
// check 로직
if(loc >= N) {
System.out.println(i);
break;
}
tmp = map[loc];
//System.out.print("for");
//System.out.println(tmp);
loc += tmp; // 말의 위치 다시 적용
// check 로직
if(loc >= N) {
System.out.println(i);
break;
}
//System.out.println(tmp);
}
}
}
Reference
この問題について(👩💻 BOJ 5566サイコロゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@hyemz/BOJ5566テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol