1. 문제
코딩테스트 연습 - 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레�
programmers.co.kr
2. 소스코드
- Stack으로 분류된 문제이긴 한데... 사실 Stack을 안쓰고도 가능하고, 안쓰는게 더 빠를 것 같다. (배열 사용 시)
- 2020/03/04 - [알고리즘/PS] - [ 백준-10799번 / 스택 ] 쇠막대기
기존에 풀었던 문제. 백준에도 있다. 위 코드는 백준 강의 해설에 나오는 정석코드.
소스코드
- 소스코드를 보면 알겠지만, 사실 stack을 배열로 바꿔도 상관없다.
#include <string>
#include <stack>
using namespace std;
int solution(string ch) {
int answer = 0;
stack<char> st;
for (int i = 0; i < ch.size(); ++i) {
if (ch[i] == '(')
st.push(ch[i]);
else {
st.pop();
if (ch[i-1] == '(') {
answer += st.size();
}
else
answer += 1;
}
}
return answer;
}
'알고리즘 > BOJ(백준)' 카테고리의 다른 글
[ 프로그래머스 / BF / 그리디 ] 조이스틱 풀이 (0) | 2020.06.25 |
---|---|
[ 백준-3663번 / BF / 그리디 ] 고득점 풀이 (0) | 2020.06.25 |
[ 백준-2493번 / Stack ] 탑 (풀이) (0) | 2020.06.24 |
[ 프로그래머스 / Stack ] 탑 (풀이) (0) | 2020.06.24 |
[ 프로그래머스 / 구현 ] 다리를 지나는 트럭 (풀이) (0) | 2020.06.24 |