가티있는블로그

[프로그래머스] 쇠막대기

2020. 3. 24. 19:42 | 프로그래밍/코딩테스트 문제

프로그래머스에서 쇠막대기 문제를 해결했다.

초반에 문제를 이해하기 어려웠지만 스텍안에 있는 것만 레이저가 자른다는것을 생각해서 스텍사용해서 어렵지않게 문제를 해결할 수 있었다.

한번에 코딩 성공해서 당황스러웠던…ㅎ

 

#include <string>
#include <vector>

using namespace std;

int solution(string arrangement) {
	int answer = 0;
	vector<int> stack;
	for (int i = 0; i < arrangement.length(); i++) {
		if (arrangement[i] == '(') {
			stack.push_back(1); //막대 추가
		}
		else if (arrangement[i] == ')') {
			if (arrangement[i - 1] == '(') { //레이저일 경우
				stack.pop_back();
				for (int j = 0; j < stack.size(); j++) {
					stack[j]++;
				}
			}
			else { //아닐 경우
				int temp = stack.back();
				stack.pop_back();
				answer += temp;
			}
		}
	}
	return answer;
}