-
[프로그래머스] 짝지어 제거하기 python (level 2)알고리즘 문제/풀어본 것 2022. 10. 30. 16:43
https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=python3
1트
문제 풀기전 설계부터하는 것은 좋았다.
그런데 그대로 코딩을 안했다... 주의하자풀고 틀린 경우 확인할 것
- 설계대로 구현했는가?
- 1이 맞다면 설계가 잘못된 곳이 있는지 확인(코너케이스 확인)
내 풀이
# 알파벳 소문자로 이루어진 문자열을 가지고 시작 # 1. 문자열에서 같은 알파벳이 2개 붙어있는 짝 찾기 # 2. 그 둘을 제거 # 3. 앞뒤로 이어 붙임 # 4. 이 과정을 반복 # 짝지어 제거하기를 성공적으로 수행할 수 있다면 1을 리턴 아니면 0을 리턴 # 1. 글자 확인 # 2. stack 이 비어있으면 1로 돌아감 아니면 stack의 맨 처음것과 비교 # 3. 같으면 stack pop continue 다르면 현재 요소를 stack push # 모든 글자가 끝날때까지 진행 # 끝나고 stack이 비어있으면 1 아니면 0 from collections import deque def solution(s): stack = deque() for ch in s: if len(stack) == 0: stack.append(ch) continue elif stack[-1] == ch: stack.pop() else: stack.append(ch) answer = 1 if len(stack) == 0 else 0 return answer # print(solution("aaaa")) # 1 # print(solution("aaaaa")) # 0 # print(solution("a")) # 0 # # print(solution("")) # 1 # print(solution("abccba")) # 1 # print(solution("abcacba")) # 0 print(solution("abcda")) # 0
'알고리즘 문제 > 풀어본 것' 카테고리의 다른 글
[프로그래머스] 소수 찾기 python(level 2) (0) 2022.10.30 [프로그래머스] 숫자 게임 python (level 3) (0) 2022.10.30 [프로그래머스] 다음 큰 숫자 python(level 2) (0) 2022.10.30 [프로그래머스] 피보나치 수 python(level 2) (0) 2022.10.30 [프로그래머스] 숫자의 표현 python(level 2) (0) 2022.10.30