본문 바로가기

코딩테스트/programmers

짝지어 제거하기

https://school.programmers.co.kr/learn/courses/30/lessons/12973

 

프로그래머스

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

programmers.co.kr

 

전형적인 Queue/Stack 문제인데, 관건은 문자열 처리를 어떻게 하느냐인듯.

 

난이도에 비해 질문 글 갯수가 많아서 왜 그런가 했는데, 대부분 문자열 처리에서 문제를 겪은 듯 하다.

 

 

import java.util.*;

class Solution
{
    public int solution(String s)
    {
        
        char[] arr = s.toCharArray();
        
        Stack<Character> stack = new Stack();
        
        for (char c : arr) {
            if (stack.isEmpty()) {
                stack.push(c);
            } else {
                char peek = stack.peek();
                if (peek == c) {
                    stack.pop();
                } else {
                    stack.push(c);
                }
            }
        }
        
        return stack.isEmpty() ? 1 : 0;
    }
}

 

문제를 풀고 다른 분들의 정답을 보니 toCharArray() 대신 getBytes() 로 처리한 분이 계시더라.

 

확실히 메모리 사용량이나 처리시간이 줄어듦.

 

split("") 으로도 테스트 해봤는데 문자열 처리라 그런지 확실히 느리고 무겁더라..

 

 

'코딩테스트 > programmers' 카테고리의 다른 글

영어 끝말잇기  (0) 2023.09.18
카펫  (0) 2023.09.18
피보나치 수  (0) 2023.09.16
다음 큰 숫자  (0) 2023.09.16
프로세스  (0) 2023.09.13