본문 바로가기

Computer Science&Engineering/코딩테스트

[백준 10799] 쇠막대기

문제 링크

www.acmicpc.net/problem/10799

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

 

'(' 가 나오면 막대기 레이어가 추가되고, ')'가 나오면 레이어가 준다. '()' 가 나오면 레이어 수만큼 절단된 쇠막대기 개수가 증가한다.

 

# 제출 코드

#include <stdio.h>

char A[100000+10];

int main(){
	int i = 0, layer = 0, sum = 0;
	scanf("%s", A);
	for(i=0; A[i]; i++){
		if(A[i] == '(' && A[i+1]== ')') {
			sum += layer;
			i++;
		}
		else if (A[i] == '(') layer++;
		else {
			layer--;
			sum ++;
		}
	}
	printf("%d", sum);
	return 0;
}
반응형