반응형
프로그래머스
쇠막대기
https://programmers.co.kr/learn/courses/30/lessons/42585
코딩테스트 연습 - 쇠막대기 | 프로그래머스
여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다. - 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다. - 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다. - 레이저는 어
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
int solution(string arrangement) {
int answer = 0;
int stick = 0, r = 0;
int size = arrangement.size();
for(int i=0; i<size; i++) {
if(arrangement[i] == '(') {
if(arrangement[i+1] == ')') r = 1; // 레이저 on
else stick++;
}
else {
if(r == 1) { // 레이저 on이면
answer += stick; // 쇠막대기 갯수만큼 더하고
r = 0; // 레이저 off
}
else { // 레이저 off이면
stick--;
answer++;
}
}
}
return answer;
}
스택/큐 유형이라는데 다르게 품
반응형
'코딩테스트 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 괄호 변환 (0) | 2020.02.27 |
---|---|
[프로그래머스] 가장 큰 수 (0) | 2020.02.27 |
[프로그래머스] 모의고사 (0) | 2020.02.27 |
[프로그래머스] 종이접기 (0) | 2020.02.26 |
[프로그래머스] 문자열 압축 (0) | 2020.02.26 |