본문 바로가기
PS 문제 풀이/SWEA

[SWEA] 1234 비밀번호

by 까망 하르방 2021. 3. 1.
반응형

출처: SWEA

 Input 

10 1238099084  

16 4100112380990844

 

 Output 

#1 1234

#2 4123

스택(Stack) 사용.

입력받은 문자를 stack에 한개씩 push 합니다.

같은 문자가 top에 위치한 경우에는 push하지 않고 top에 있는 것을 pop 합니다.


#include <iostream>
#include <stack>
#include <string>
using namespace std;
 
int main() {
    int testCase = 10;
    stack<char> stack, answer;
    int len;
    string str;
    for (int tc = 1; tc <= testCase; tc++) {
        cin >> len >> str;
        
        for (int i = 0; i < len; i++) {
            if (!stack.empty() && stack.top() == str[i]) {
                stack.pop();
                continue;
            }
            stack.push(str[i]);
        }
        
        // 기존 스택에 있는 원소를 거꾸로 출력하기 위해서
        // 다른 스택에 반대로 push해서 담습니다.
        while (!stack.empty()) {    
            answer.push(stack.top());
            stack.pop();
        }
 
        // 정답 출력
        cout << "#" << tc << " ";
        while (!answer.empty()) {
            printf("%c", answer.top());
            answer.pop();
        }
        cout << '\n';
    }
}

 

반응형

'PS 문제 풀이 > SWEA' 카테고리의 다른 글

[SWEA] 3066 팀 정하기  (0) 2021.03.01
[SWEA] 1284 수도 요금 경쟁  (0) 2021.03.01
[SWEA] 3376 파도반 수열  (0) 2021.03.01
[SWEA] 3347 올림픽 종목 투표  (0) 2021.03.01
[SWEA] 1213 String  (0) 2021.03.01

댓글