https://www.acmicpc.net/problem/9012

 

9012번: 괄호

문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc

www.acmicpc.net

 

9012번 괄호는 괄호의 짝을 찾는 문제입니다.

문제를 읽어보시면 여는괄호가 있을때 닫는 괄호가 있다면 짝이 맞는것입니다.

 

문제를 접근할때는 여는 괄호가 나올 때 마치 스택에 넣듯이 생각하시면 됩니다.

위 그림과 같이 여는 괄호가 나올때 스택에 넣고 닫는 괄호가 나올때마다 하나씩 뺀다고 생각 하시면 됩니다.

그렇게 되면 Stack_size가 여는 괄호가 나올때는 1씩 증가하고, 닫는 괄호가 나올때 1씩 감소하게 됩니다.

그러므로 Stack_size가 0이면 모든 괄호가 짝이 있어서 "YES"를 출력하면 됩니다.

하지만 0이 아니거나 Stack_size가 한번이라도 음수가 된다면 짝이 없는 것이므로 "NO"를 출력하면 되겠습니다.

 

 

'Programming > Baekjoon' 카테고리의 다른 글

BOJ ) 10866번 덱  (0) 2019.06.25
BOJ ) 1158번 조세퍼스문제  (0) 2019.05.31
BOJ ) 10845_큐  (0) 2019.05.30
BOJ ) 1406 에디터  (0) 2019.05.25
BOJ ) 10799번 쇠막대기  (0) 2019.05.23

https://www.acmicpc.net/problem/10799

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과

www.acmicpc.net

문제를 읽어보면  '(' 다음에 바로 ')' 이렇게 나오면 레이저가 됩니다 ==>()

그렇지 않고 그냥 '(' 만 있다면 파이프의 시작 부분이 되는것입니다. 

그리고 ')'는 파이프가 끝나는 부분이 됩니다. 

 

그러므로 파이프가 생성될 때 pipe_counter를 1씩 증가시켜주고 레이저가 나온다면 우선 pipe_count만큼 잘리게 됩니다.

파이프가 끝나게 되면 정답에 +1을 해주어 총 파이프 한개가 레이저에 의해 잘린 횟수가 정답에 더해지게 됩니다.

 

 

 

 

 

 

'Programming > Baekjoon' 카테고리의 다른 글

BOJ ) 10866번 덱  (0) 2019.06.25
BOJ ) 1158번 조세퍼스문제  (0) 2019.05.31
BOJ ) 10845_큐  (0) 2019.05.30
BOJ ) 1406 에디터  (0) 2019.05.25
BOJ ) 9012번 괄호  (0) 2019.05.23

+ Recent posts