It's easy, if you try

[SW Expert Academy] 7964: 부먹왕국의 차원 관문 (Java) 본문

알고리즘/자바(Java)

[SW Expert Academy] 7964: 부먹왕국의 차원 관문 (Java)

s5he2 2021. 2. 25. 17:39
반응형

풀이

import java.util.*;
import java.io.*;

public class Solution {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
	static StringTokenizer st;
	static int cnt, answer, N, D;
	static int[] capital;
	public static void main(String[] args) throws Exception {
		int T = Integer.parseInt(br.readLine());
		for(int t=1; t<=T; t++) {
			st = new StringTokenizer(br.readLine());
			cnt =0; answer =0;
			N = Integer.parseInt(st.nextToken());
			D = Integer.parseInt(st.nextToken());
			capital = new int[N];
			st = new StringTokenizer(br.readLine());
			for(int i=0; i< N; i++) {
				capital[i] = Integer.parseInt(st.nextToken());
			}
			
            // 처음 문과 끝 문이 0 이면 무조건 1로 바꿔주고 answer 1 UP
			if(capital[0] == 0) {
				answer++;
				capital[0] =1;
			}
			if(capital[N-1] == 0) {
				answer++;
				capital[N-1] =1;
			}
			
			for(int i=0; i< N; i++) {
				if(capital[i] == 1) { // 관문이 있으면
					cnt =0; // 현재 이동 거리 제한 0 으로 만들기
				} else {
					cnt++;
					if(cnt >= D) { // 이동 거리 제한에 걸리면 
						answer++; // 관문을 재건하고 
						cnt =0; // 현재 이동 거리 제한 0으로 만들기 
					}
				}
			}
			bw.append("#"+t+" "+answer+"\n");
		}
		bw.flush();
		bw.close();
	}
}

변수설명

cnt: 현재까지 이동 거리 제한 (0인 도시를 지날 때 증가)

answer :  관문을 재건한 수

반응형
Comments