# 유형 : 구현, 시뮬레이션
# 난이도 : 브론즈 2
# 다이스 굴리고 난 후, 규칙을 적용한 게 한 패턴이라고 생각하고 구현하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | package bj; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class p5566 { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); // 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. // 첫째 줄에 N과 M이 주어진다. M은 상근이가 주사위를 던짓 횟수 int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int arr[] = new int[N+1]; int map[] = new int[N+1]; int index = 1; int count = 0; for(int i=1; i<=N; i++) arr[i] = Integer.parseInt(br.readLine()); for(int i=1; i<=M; i++) { int dice = Integer.parseInt(br.readLine()); index += dice; count++; if(index >= N) { System.out.println(count); break; } int next = solve(index, arr, N); index = next; if(index == N) { System.out.println(count); break; } } } private static int solve(int index, int arr[], int N) { // TODO Auto-generated method stub int result = index; if(arr[index] > 0) { result += arr[index]; if(result > N) result = N; }else if(arr[index] < 0) { result += arr[index]; } return result; } } | cs |
'백준' 카테고리의 다른 글
#백준_1347 미로 만들기 - Java 자바 (0) | 2020.02.29 |
---|---|
#백준_2933 미네랄 - Java 자바 (0) | 2020.02.27 |
#백준_1135 뉴스 전하기 - Java (0) | 2020.02.26 |
#백준_2980 도로와 신호등 - Java 자바 (0) | 2020.02.26 |
#백준_3048 개미 - Java 자바 (0) | 2020.02.25 |