{{{~cpp package RandomWalk; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class RandomWalk { private int board[][]; private String schedule; private int curX, curY; private int size; private int dirX[] = {0,1,1,1,0,-1,-1,-1}; private int dirY[] = {-1,-1,0,1,1,1,0,-1}; public RandomWalk() { walk(); result(); } private void walk() { readData(); goWithScheduledDirection(); } private void goWithScheduledDirection() { // 시작위치 ++board[curX][curY]; // 스케쥴된 방향에 따라 이동.. for(int i=0; i= size ) curX = 0; // warp curY += dirY[idx]; if( curY<0 ) curY = size-1; // warp else if( curY >= size ) curY = 0; //warp ++board[curX][curY]; } } private void readData() { try { DataInputStream din = new DataInputStream(new FileInputStream(new File("input2.txt"))); size = Integer.parseInt(din.readLine()); board = new int[size][size]; // 시작위치 String pos = din.readLine(); String startPoint[] = pos.split(" "); curX = Integer.parseInt(startPoint[0]); curY = Integer.parseInt(startPoint[1]); emptyBoard(); schedule = din.readLine(); } catch (IOException e) { e.printStackTrace(); } } private void emptyBoard() { for(int i=0; i