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
- programmers
- hackerrank
- github
- 금융문자분석경진대회
- ChatGPT
- gs25
- Git
- 캐치카페
- 더현대서울 맛집
- 자연어처리
- SW Expert Academy
- leetcode
- 백준
- 데이콘
- ubuntu
- 프로그래머스
- Kaggle
- 편스토랑 우승상품
- AI 경진대회
- 코로나19
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- PYTHON
- Docker
- 우분투
- 파이썬
- 프로그래머스 파이썬
- 맥북
- Baekjoon
- dacon
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