개발일지/Algorithm

프로그래머스 - 짝지어 제거하기 [Stack]

2023. 10. 30. 23:08
목차
  1. 1. 문제 요약
  2. 2. 접근 방법
  3. 3. 파이썬
  4. 4. 자바
  5.  
728x90

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 요약

문자열 s가 주어집니다.

 

문자열 s안에 연속으로 같은 알파벳 2개가 있으면 제거하고 앞뒤로 이어 붙입니다.

해당 과정을 계속 반복하여 모든 알파벳을 제거할 수 있으면 1을 리턴하고, 없으면 0을 리턴합니다.

 

2. 접근 방법

  • 제거할 수 없는 알파벳을 담을 Stack을 초기화합니다.
  • 문자열을 순차적으로 방문합니다.
    • Stack이 비어있으면 현재 알파벳을 넣습니다.
    • Stack에 최근에 넣은 알파벳과 현재 알파벳이 다를 경우 제거할 수 없으므로 현재 알파벳을 넣습니다.
    • Stack에 최근에 넣은 알파벳과 현재 알파벳이 같을 경우 제거할 수 있으므로 Stack의 해당 알파벳을 제거합니다.
  • 과정을 마친 후 Stack이 비어있다면 1, 아니면 0을 리턴합니다.

 

3. 파이썬

def solution(s: str):
    if len(s) % 2 == 1:
        return 0
    
    stack = []
    for char in s:
        if not(stack) or stack[-1] != char:
            stack.append(char)
        else: # stack[-1] == char:
            stack.pop()
    
    return 1 if not(stack) else 0

 

4. 자바

public int solution(String s) {
    if (s.length() % 2 == 1) {
        return 0;
    }

    Stack<Character> stack = new Stack<>();
    for (char c : s.toCharArray()) {
        if (stack.isEmpty() || stack.peek() != c) {
            stack.push(c);
        } else {
            stack.pop();
        }
    }

    return stack.isEmpty() ? 1 : 0;
}

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'개발일지 > Algorithm' 카테고리의 다른 글

백준 - 11725 트리의 부모 찾기 [DFS][BFS]  (0) 2023.11.05
백준 - 1991 트리 순회 [Tree]  (0) 2023.11.01
백준 - 2606 바이러스 [BFS]  (1) 2023.10.28
백준 - 2606 바이러스 [DFS] 자바 백준 1위  (1) 2023.10.28
백준 - 2805 나무 자르기 [이분 탐색]  (1) 2023.10.25
  1. 1. 문제 요약
  2. 2. 접근 방법
  3. 3. 파이썬
  4. 4. 자바
  5.  
'개발일지/Algorithm' 카테고리의 다른 글
  • 백준 - 11725 트리의 부모 찾기 [DFS][BFS]
  • 백준 - 1991 트리 순회 [Tree]
  • 백준 - 2606 바이러스 [BFS]
  • 백준 - 2606 바이러스 [DFS] 자바 백준 1위
E-room
E-room
나의 성취 기록들
E-room Achievement Logs나의 성취 기록들
E-room
E-room Achievement Logs
E-room
전체
오늘
어제
  • 분류 전체보기
    • 개발일지
      • 돌픽
      • Spring
      • Algorithm
      • Java
      • Node.js
      • Python
      • DataBase
      • 웹개발
      • JavaScript
      • 컴퓨터지식
      • Django
    • 이것저것
    • 피드백 감사히 받겠습니다

블로그 메뉴

  • 태그
  • Github
  • 돌픽-이상형월드컵

인기 글

최근 글

최근 댓글

태그

  • dfs
  • 다이나믹
  • 자바
  • search
  • Java
  • 완전탐색
  • JPA
  • algorithm
  • 백준
  • 알고리즘
  • 파이썬
  • 자료구조
  • mysql
  • 순열
  • 수열
  • Django
  • 생활코딩
  • dp
  • Spring
  • 조합
  • SQL
  • 재귀
  • 탐색
  • 백트래킹
  • 프로그래밍
  • 스파르타코딩클럽
  • boot
  • API
  • javascript
  • python

공지사항

hELLO · Designed By 정상우.
E-room
프로그래머스 - 짝지어 제거하기 [Stack]
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.