[백준] 10799 | 쇠막대기 | C++
풀이의 핵심은 이렇다. 입력으로 주어진 문자열을 하나씩 순서대로 처리한다: 만약 ( 이라면: 막대기의 시작을 알리는 것이다. stack에 넣는다; 만약 ) 이라면: stack pop; stack의 top(가장 최근에 넣은 값)이 ( 이라면: 레이저로 인해 조각들이 생겼다. 생겨난 조각 수(stack의 size)만큼 결과값에 더한다; stack의 top(가장 최근에 넣은 값)이 ) 이라면: 조각의 끝을 알리는 것이다. 결과값에 하나를 더한다; 위의 그림과 함께 보면 의사코드의 이해에 도움이 될 것이다. 주의할 점은, ) 을 처리하려는데 이전에 ( 이 들어왔다면, 막대기가 아닌 레이저이므로 미리 stack에서 pop시켜야 한다. 그래야 조각 수를 올바르게 더할 수 있다. ) 을 처리하려는데 이전에도 ) 이 ..
2022.07.15