[C++] 백준 5397번: 키로거

2022. 7. 8. 18:45·problem solving/백준

문제

https://www.acmicpc.net/problem/5397

 

풀이

커서를 기준으로 컨테이너를 두개로 나눠서 >, <, - 에 따라서 옮겨주면 풀 수 있다.

벡터는 원소의 추가/삽입마다 복사해야하므로 속도가 느리니까 원소 변경이 잦다면다른 컨테이너를 써야 한다. 

힌트를 보면 스택이라고 나와있는데 노드로 푸는게 직관적으로 더 좋은 것 같다. 

그리고 다들 보면 list로 풀기도 한다.

 

소스

#include <iostream>
#include <list>
#include <string>
#include <stack>
#include <vector>
#include<algorithm>
 
int main()
{
    int T = 0; std::cin >> T;
    while(T--)
    {
    std::string code; std::cin >> code;
    std::stack<char> c1, c2;
    
    char temp; char c;
    for(int i=0; i<code.length(); ++i)
    {
        c = code[i];
        if(c == '<')
        {
            if(c1.empty()) continue;
            c2.push(c1.top());
            c1.pop();
        }
        else if(c == '>')
        {
            if(c2.empty()) continue;
            c1.push(c2.top());
            c2.pop();
            
        }
        else if(c == '-')
        {
            if(c1.empty()) continue;
            c1.pop();
        }
        else
            c1.push(c);
    }
 
    std::string result;
    while (!c2.empty())
    {
        c1.push(c2.top());
        c2.pop();
    }
    while(!c1.empty())
    {
        result += c1.top();
        c1.pop();
    }
    
    std::reverse(result.begin(), result.end());
 
    std::cout << result <<'\n';
    if(T==0) break;
    
    }
    return 0;
}
Colored by Color Scripter
cs
저작자표시 비영리 변경금지 (새창열림)
'problem solving/백준' 카테고리의 다른 글
  • [C++] 백준 5076번: Web Pages
  • [C++] 백준 1406번: 에디터
  • [C++] 백준 2841번: 외계인의 기타 연주
  • [C++] 백준 2304번: 창고 다각형
u1qns
u1qns
http://github.com/u1qns
  • u1qns
    개발 블로그
    u1qns
  • 전체
    오늘
    어제
    • 분류 전체보기 (173) N
      • 회고 (1)
      • programming (17)
        • 개념 정리 (6)
        • CI CD (1)
        • 트러블 슈팅 (0)
        • 환경설정 및 팁 (7)
      • problem solving (155) N
        • 개념 정리 (3)
        • 백준 (129) N
        • SWEA (15)
        • 프로그래머스 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    cpp
    SSAFY
    백준
    BFS
    HELLOSSAFY
    그리디
    C++
    SWEA
    POW
    boj
    되추적
    삼성청년SW아카데미
    완전탐색
    DP
    투포인터
    구현
    SSAFY수료식
    cmath
    미해결
    DFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
u1qns
[C++] 백준 5397번: 키로거
상단으로

티스토리툴바