티스토리 뷰

1) 생각

사람들은 대중의 흐름에 의해 움직인다!  i 번째의 사람들은 i-1명이 기립박수를 치고 있어야지 기립박수를 같이 쳐준다. 문자열이 주어졌을 때 모든 사람이 기립박수를 치게하려면 몇 명의 알바를 고용해야할까?


첫 번째 생각

i 번째 사람은 i-1 명이 박수를 치고 있어야 한다고 적혀있지만 배열로 따질 경우 Index가 0 부터 시작하기 때문에 Index i 번째 사람은 i명 이상이 박수를 치고 있어야지만 기립 박수를 치기 시작한다.


두 번째 생각

예시가 모두 0과 1로 주어졌지만 0~9 까지의 숫자가 나올 수 있다.

2) 방안

기립 박수를 치고있는 관객 수를 계속 더해가면서 현재 박수를 치고있는 사람 수와 Index 번호와 크기를 비교하여 현재 박수를 치고있는 사람 수가 적을경우 해당 Index 번호만큼의 사람들이 박수를 치고있어야 하므로 Index 번호와 현재 사람수의 차이만큼 더해주고 이 더해준 값을 고용해야하는 사람 수를 저장하는 변수에 따로 저장하였다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.io.IOException;
import java.util.Scanner;
 
public class Solution {
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        int tc = sc.nextInt();
        for(int i=1;i<=tc;i++) {
            String row = sc.next();
            
            int now = row.charAt(0)-'0';
            int result = 0;
            for(int j=1;j<row.length();j++) {
                if(now>=j) {
                    now += row.charAt(j)-'0';
                }else {
                    result += j-now;
                    now += j-now+row.charAt(j)-'0';
                }
            }
            System.out.println("#"+i+" "+result);
        }
    }
}
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday