본문 바로가기
C++/백준 Etc

[c++] 백준 쇠막대기 (10799)

by 스프링섬머 2023. 7. 23.
728x90
  • 레이저로 쇠막대기를 분리하는 문제
  • 쇠막대기와 레이저 모두 문자열 '('와 ')'로 나타냄

 

풀이
  • 문자열을 입력 받고, 하나씩 문자를 가져와 '('일 경우에 스택에 쌓음
  • ')'가 나왔을 시, 레이저로 간주하고 이전까지 쌓은 스택의 사이즈만큼 count. (잘린 쇠막대기 개수)
  • ')'가 나왔을 시, 레이저가 아닌 경우, 쇠막대기를 닫는 경우를 위해 layzer라는 변수를 설정해서 on/off 해줌
  • layzer=0일 경우, 가장 안쪽의 쇠막대기가 닫히면서 count+1해준다.

 

코드

 

알게 된 점
  • 스택의 활용
  • 예외처리가 너무 힘들다
  • 스택 문제라는 틀에 갇혀서 문제풀이가 더 어려워진 것 같다. 아니면 내가 스택을 잘 활용하지 못하거나.

 

git 코드

https://github.com/intlabSeJun/c-plus-coding-test/blob/master/8.%20%EC%8A%A4%ED%83%9D%EC%9D%98%20%ED%99%9C%EC%9A%A9/%EC%87%A0%EB%A7%89%EB%8C%80%EA%B8%B0(10799).cpp 

 

728x90