-
[백준/BOJ] 3986번 : 좋은 단어 _Python알고리즘/백준(BOJ) 2022. 2. 26. 22:14728x90반응형
>문제
>접근방법
스택 개념을 쓰면 될 것 같다. 만나는 글자와 top(파이썬의 경우, list[-1])을 비교해보고 같으면 pop, 다르면 append
>알고리즘
1. 입력 문자열 개수만큼 첫 번째 for문 반복
2. 문자열을 리스트 word[]에 입력받는다.
3. 입력받은 문자열 길이만큼 두 번째 for문 반복
4. 리스트가 비어있으면 word[j]를 stack[]에 append한다.
5. stack[]의 끝값(마지막에 넣은 값)과 word[j]을 비교해보고 같으면 pop, 다르면 append 한다.
6. 두 번째 for문이 끝나고 스택이 비어있으면 좋은 문자를 만난 것이기 때문에 cnt 를 1 더해준다.
7. 결과값으로 cnt 출력.
>코드
stack = [] word = [] cnt = 0 n = int(input()) for _ in range(n): word = list(input()) for j in range(len(word)): if len(stack) != 0: if word[j] == stack[-1]: stack.pop() else: stack.append(word[j]) else: stack.append(word[j]) if len(stack) == 0: cnt += 1 while len(stack) != 0: stack.pop() print(cnt)
>결과
>결론
동노 가고싶다LIST'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ] 5397번 : 키로거 _Python (0) 2022.03.01 [백준/BOJ] 10799번 : 쇠막대기 _Python (0) 2022.02.28 [백준/BOJ] 10773번 : 제로 _Python (0) 2022.02.26 [백준/BOJ] 9012번 : 괄호 _Python (0) 2022.02.26 [백준/BOJ] 10798번 : 세로읽기 _Python (0) 2022.02.26