on
[백준] 2346 - 풍선 터뜨리기
[백준] 2346 - 풍선 터뜨리기
[문제링크]
1. 사용한 풍선은 표시해두고, 지나가더라도 카운트하지 않는다
2. 양 끝 간 이동 처리를 위해, 증감시 N으로 나머지 연산
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args)throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = pint(br.readLine()); int[] num = new int[N]; boolean[] chk = new boolean[N]; StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i < N; i++) { num[i]=pint(st.nextToken()); } int cur=0; sb.append(cur+1).append(" "); int move = num[cur]; chk[cur]=true; for (int i = 1; i < N; i++) { int cnt=0; while(cnt0) { cur++; cur%=N; if(chk[cur])continue; } else { cur--; cur+=N; cur%=N; if(chk[cur])continue; } cnt++; } sb.append(cur+1).append(" "); move = num[cur]; chk[cur]=true; }System.out.println(sb); } static int pint(String s) { return Integer.parseInt(s); } }
결과 화면
from http://nato-blog.tistory.com/143 by ccl(S) rewrite - 2021-10-26 06:02:43