728x90
짝지어 제거하기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
스택을 이용하여 상단에 같은 짝이 오면 지우는 문제
2019 카카오 겨울 인턴쉽 1번 문제의 기본이라고 생각할 수 있겠다. => Link
[2019 kakao winter internship] 01. 크레인 인형뽑기 게임 (cpp/python)
크레인 인형뽑기 게임 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
wonillism.tistory.com
문제 풀이
소스코드 : C++
- stack 을 의미하는
vector
를 선언하고 문자열을 탐색한다. stack
이 비어있지 않고top
에 있는 값과 문자(c)의 값이 같으면 제거해준다.- 그렇지 않다면
stack
에 쌓아준다. - 모든 문자를 탐색하고 벡터가 비어있으면 1을, 그렇지 않으면 0을 반환한다.
#include <iostream>
#include<string>
#include<vector>
using namespace std;
int solution(string s){
vector<int> v;
for(auto c : s){
if(!v.empty()&&v.back() == c)v.pop_back();
else v.push_back(c);
}
return v.size()==0?1:0;
}
소스코드 : Python
def solution(s):
answer = 0
stack = []
for c in s:
if len(stack):
if len(stack) and stack[-1]==c:
stack.pop()
else: stack.append(c)
answer = 0 if len(stack) else 1
return answer
728x90
300x250