It's easy, if you try

[SW Expert Academy] 4789: 성공적인 공연 기획 (Java) 본문

알고리즘/자바(Java)

[SW Expert Academy] 4789: 성공적인 공연 기획 (Java)

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

풀이

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

public class Solution {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static int cnt, answer;
	static char[] people;
	public static void main(String[] args) throws Exception {
		int T = Integer.parseInt(br.readLine());
		for(int t=1; t<=T; t++) {
			people = br.readLine().toCharArray();
			cnt =0; answer =0;
			
			for(int i=0; i< people.length; i++) {
				if(cnt < i && people[i] - '0' > 0) {
					while(cnt < i) {
						answer++;
						cnt++;
					}
				}
				cnt += people[i] - '0';
			}
			System.out.println("#"+t+" "+answer);
		}
	}
}

cnt: 기립박수 친 사람

answer : 고용해야할 사람들

people[i] : cnt가 i 명일 때 기립 박수를 칠 사람의 수  

cnt 가 i 보다 적다는 것은 기립 박수 칠 사람을 고용해야 한다는 것을 의미하므로 cnt 가 i 와 같아질 때까지 answer를 1 UP 하면서 고용하는 사람들이 기립박수도 치니까 cnt도 같이 1 UP 해준다.

for문이 끝나면 people[i] 사람들 모두 기립 박수를 칠 수 있으므로, cnt에 people[i] 값을 더해준다. 

char 형으로 받아왔기 때문에 people[i] - '0' 을 해서 int 값을 구했다.
반응형
Comments