on
[백준] 14891 - 톱니바퀴
[백준] 14891 - 톱니바퀴
[문제링크]
0. 구현문제. 요구사항을 잘 구현한다
1. 톱니바퀴의 연쇄 회전 : 회전 여부를 저장하는 boolean 배열과 재귀로 진행
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ static boolean[][] wheel; static boolean[] isTurn; public static void main(String[] args)throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; //s극 : true, n극 : false wheel = new boolean[4][8]; for (int i = 0; i < 4; i++) { String s = br.readLine(); for (int j = 0; j < 8; j++) { wheel[i][j]=s.charAt(j)-'0'==1?true:false; } } int n = pint(br.readLine()); for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine(), " "); int num = pint(st.nextToken())-1; int dir = pint(st.nextToken()); isTurn=new boolean[4]; turn(num,dir);//1:시계, -1:반시계 } int score=0; for (int i = 0; i < 4; i++) { if(wheel[i][0])score+=1<0 && !isTurn[n-1] && wheel[n][6]!=wheel[n-1][2])turn(n-1, dir==1?-1:1); if(dir==1) { boolean tmp = wheel[n][7]; for (int i = 7; i > 0; i--) { wheel[n][i] = wheel[n][i-1]; }wheel[n][0]=tmp; } else { boolean tmp = wheel[n][0]; for (int i = 0; i < 7; i++) { wheel[n][i] = wheel[n][i+1]; }wheel[n][7]=tmp; } } static int pint(String s) { return Integer.parseInt(s); } }
결과 화면
from http://nato-blog.tistory.com/132 by ccl(S) rewrite - 2021-09-28 07:27:41