https://www.acmicpc.net/problem/3986
- 조건1. 같은 문자끼리 연결한 선이 교차 하지 않아야 한다.
- 조건2. 각 글자를 정확히 한개의 다른위치에 있는 다른글자와 짝지을 수 있다.
- 문제를 읽고 조건을 생각해보다가 스택을 이용하면 편하게 풀수 있다고 생각한 것이
- 스택에 넣어놓고 같은 단어가 들어와서 그 단어와 함께 pop이 되면 그것이 선이 교차하지 않는다는 것으로 생각
- 1. 스택이 비어있으면 삽입
- 2. 스택의 top()과 현재 문자가 같으면 스택을 pop()
- 3. 스택의 top()과 현재 문자가 다르면 그대로 스택에 push()
- 단어 전체를 순회 하는동안 위 과정을 거쳐는데 만약 1번 조건이 만족하지 않는다면 스택에서 빠져나가지
- 못한채로 남아있는 문자들이 있을 것이고 1번은 만족해도 2번이 만족되지 않는다면 홀수개의 문자가 스택에 남아있을
- 것입니다.
- 즉 반복문을 모두 돌았을 떄 스택이 비어있어야 그 단어는 좋은 단어 인것입니다.
<필기>
<코드>
'알고리즘 문제풀이 > 스택' 카테고리의 다른 글
백준 1406 [C++] (0) | 2021.01.09 |
---|---|
백준 10799 [C++] (0) | 2021.01.09 |
백준 1874 [C++] (0) | 2021.01.09 |
백준 2493 (0) | 2020.01.08 |