알고리즘/자바(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 값을 구했다.
반응형