Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 맥북
- Baekjoon
- PYTHON
- SW Expert Academy
- github
- 데이콘
- AI 경진대회
- 금융문자분석경진대회
- leetcode
- 코로나19
- programmers
- 편스토랑
- Kaggle
- 편스토랑 우승상품
- Git
- Docker
- 우분투
- 프로그래머스
- Real or Not? NLP with Disaster Tweets
- 자연어처리
- hackerrank
- ubuntu
- 프로그래머스 파이썬
- dacon
- 더현대서울 맛집
- ChatGPT
- 캐치카페
- gs25
- 파이썬
- 백준
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 2017 팁스타운 - 짝지어 제거하기 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 짝지어 제거하기 입니다.
👨🏻💻 문제 풀이
짝지어 제거하기는
baabaa 라는 단어가 있을 때 b aa baa -> bb aa -> aa ->
위와 같이 특정 단어가 주어지면 그 안의 알파벳을 짝지어 없애는 과정을 거쳤을 때 아무것도 남지 않는지 남는지
확인하는 문제입니다.
이 문제는 스택을 활용하여 풀면 쉽습니다.
baabaa 의 경우에
앞에서부터 하나씩 꺼내서 현재 스택에 들어있는 값의 마지막 값과 같은 값이면 스택에서 값을 pop 하고
스택에 들어있는 값의 마지막 값과 다른 값일 경우에는 append 해주는 식으로 하여
마지막 알파벳 까지 갔을 때 스택에 남아있는 값이 없을 때
짝지어 제거하기에 성공하였다! 라고 파악합니다.
전체 코드는 아래를 참고해주세요.
👨🏻💻 코드 ( Solution )
def solution(s):
answer = 0
check_list = []
for char in s:
if len(check_list) == 0 or check_list[-1] != char:
check_list.append(char)
elif check_list[-1] == char:
check_list.pop()
else:
check_list.append(char)
if len(check_list) == 0:
answer = 1
return answer
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 탐욕법(Greedy) - 체육복 (Python) (0) | 2022.02.15 |
---|---|
[Programmers] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 (Python) (0) | 2022.02.14 |
[BaekJoon] 2747번 : 피보나치 수 (Python) (0) | 2022.02.12 |
[BaekJoon] 1834번 : 나머지와 몫이 같은 수 (Python) (0) | 2022.02.11 |
[BaekJoon] 2490번 : 윷놀이 (Python) (0) | 2022.02.10 |
Comments