프로그래머스에서 쇠막대기 문제를 해결했다.
초반에 문제를 이해하기 어려웠지만 스텍안에 있는 것만 레이저가 자른다는것을 생각해서 스텍사용해서 어렵지않게 문제를 해결할 수 있었다.
한번에 코딩 성공해서 당황스러웠던…ㅎ
#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;
}
'프로그래밍 > 코딩테스트 문제' 카테고리의 다른 글
[백준 1149번] RGB거리 (0) | 2020.03.25 |
---|---|
[프로그래머스] 프린터 (0) | 2020.03.24 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2019.10.28 |
[프로그래머스] 위장문제 (0) | 2019.10.28 |
[프로그래머스] 타켓넘버 (0) | 2019.10.13 |