[프로그래머스 Level 2] 8. 짝지어 제거하기

2026. 1. 8. 16:46·⭐라이프로그⭐/🧑‍💻코딩 테스트 준비

문제 설명

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다.

예를 들어, 문자열 S = baabaa 라면

b aa baa → bb aa → aa →

의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다.

제한사항

  • 문자열의 길이 : 1,000,000이하의 자연수
  • 문자열은 모두 소문자로 이루어져 있습니다.

입출력 예

s result

baabaa 1
cdcd 0

입출력 예 설명

입출력 예 #1

위의 예시와 같습니다.

입출력 예 #2

문자열이 남아있지만 짝지어 제거할 수 있는 문자열이 더 이상 존재하지 않기 때문에 0을 반환합니다.

※ 공지 - 2020년 6월 8일 테스트케이스가 추가되었습니다.

※ 공지 - 2023년 8월 31일 테스트케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.

코드

# def solution(s):
#     answer = -1

#     make_list = list(s)
#     # Step 1. 맨 앞이 다음과 같은지 확인하기
#     i = 0
#     # 연속된 알파벳이 나오면 제거하고 다시 처음부터 시작하기 때문에 효율성이 떨어짐,,! 오래걸려서 다른 방법으로
#     while i < len(make_list)-1:
#         if make_list[i] == make_list[i+1]:
#             del make_list[i:i+2]
#             i = 0
#         else:
#             i+=1

#     return 1 if len(make_list) ==0 else 0

def solution(s):
    stack = []
    for ch in s:
        if stack and stack[-1] == ch:
            stack.pop()
        else:
            stack.append(ch)
    return 1 if not stack else 0

'⭐라이프로그⭐ > 🧑‍💻코딩 테스트 준비' 카테고리의 다른 글

[프로그래머스 Level 2] 7. 다음 큰 숫자  (0) 2026.01.08
[프로그래머스 Level 2] 6. 숫자의 표현  (0) 2026.01.08
[프로그래머스 Level 2] 4. JadenCase 문자열 만들기  (0) 2026.01.08
[프로그래머스 Level 2] 3. 최솟값 만들기  (0) 2026.01.08
[프로그래머스 Level 2] 2. 올바른 괄호  (0) 2026.01.08
'⭐라이프로그⭐/🧑‍💻코딩 테스트 준비' 카테고리의 다른 글
  • [프로그래머스 Level 2] 7. 다음 큰 숫자
  • [프로그래머스 Level 2] 6. 숫자의 표현
  • [프로그래머스 Level 2] 4. JadenCase 문자열 만들기
  • [프로그래머스 Level 2] 3. 최솟값 만들기
⭐매일조금씩⭐
⭐매일조금씩⭐
통계학과 대학원생의 공부 기록, 운동 루틴, 회고를 담습니다.
  • ⭐매일조금씩⭐
    뚜리뚜벅
    ⭐매일조금씩⭐
  • 전체
    오늘
    어제
    • 분류 전체보기 (44)
      • 🙋 About me (1)
      • 논문 리뷰 (8)
        • Generative model (3)
        • Imbalanced data (2)
        • Machine Learning (3)
        • Explainable ai(XAI) (0)
      • 코드구현 (1)
      • 프로젝트 & 공모전 (2)
      • 머신러닝 (4)
      • 딥러닝 (2)
      • ⭐라이프로그⭐ (25)
        • 📓취준일기 (5)
        • 📖회고 (1)
        • 🏃‍♀️헬스 (11)
        • 🎳볼링 (0)
        • ⚽ 축구 & 풋살 (0)
        • ✈️여행 (0)
        • 🎤✨콘서트 (1)
        • 🧑‍💻코딩 테스트 준비 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    imbalanced data
    Generative Model
    deep learning
    undersampling
    양산관리
    Machine Learning
    ctgan
    벤치프레스
    불균형 데이터
    GAN
    논문리뷰
    smote
    헬린이
    헬스
    딥러닝
    infoGAN
    생성모델
    머신러닝
    oversampling
    tabular data
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
⭐매일조금씩⭐
[프로그래머스 Level 2] 8. 짝지어 제거하기
상단으로

티스토리툴바