Dolphins의 HelloWorld

SW Expert Academy 4789. 성공적인 공연 기획 D3 본문

Algorithm/SW Expert Academy

SW Expert Academy 4789. 성공적인 공연 기획 D3

돌핀's 2018. 8. 20. 20:21

문제링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWS2dSgKA8MDFAVT&categoryId=AWS2dSgKA8MDFAVT&categoryType=CODE


->사이트에서 직접 문제를 찾아 들어가야함.



풀이


문제를 이해하고 나면 쉽게 풀 수 있는 문제이다.


필요한 사람과 박수를 치고있는 사람을 저장하는 변수를 할당하고


반복문을 통해 자릿수가 0이 아닐때마다 처리해주면 된다.


#include <iostream>
#include <string>

using namespace std;

int main()
{
	int T;
	scanf("%d", &T);


	for (int i = 1; i <= T; i++)
	{
		string s;
		cin >> s;
		int number = 0; //박수치는 사람
		int need = 0; //더 고용해야할 사람

		number += (s[0] - '0');
		for (int i = 1; i < s.size(); i++) { // i는 기립박수를 치기 위해 필요한 사람 수
			int x = s[i] - '0'; //해당 자리의 숫자
			if (x != 0) {
				if ((i - number) > 0) { //박수치는 사람이 모자랄 경우
					int tmp = i - number; //tmp는 더 필요한 사람의 숫자
					need += tmp; //필요한 사람의 숫자 누적
					number += (x + tmp); //원래 박수치는 사람 + 필요했던 사람의 숫자 + 새로 기립박수를 한 사람의 수
				}
				else {
					number += x; //박수치는 사람의 수 누적
				}
			}
		}
		printf("#%d %d\n", i, need);
	}
}


Comments