일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자연어처리
- 캐치카페
- ChatGPT
- PYTHON
- github
- dacon
- 프로그래머스
- SW Expert Academy
- 편스토랑 우승상품
- 우분투
- 코로나19
- leetcode
- 더현대서울 맛집
- Real or Not? NLP with Disaster Tweets
- 프로그래머스 파이썬
- ubuntu
- Kaggle
- gs25
- 백준
- 금융문자분석경진대회
- Baekjoon
- hackerrank
- programmers
- 파이썬
- 편스토랑
- Docker
- 데이콘
- Git
- 맥북
- AI 경진대회
- Today
- Total
솜씨좋은장씨
[Programmers] 2017 팁스타운 - 짝지어 제거하기 (Python) 본문

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 짝지어 제거하기 입니다.
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
👨🏻💻 문제 풀이
짝지어 제거하기는
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

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'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 |