[C++] 백준 5397 키로거

2021. 2. 2. 10:23·Algorithm/Baekjoon
#include <iostream>
#include <string>
#include <stack>
using namespace std;

int main()
{
	int n;
	string temp;
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		stack<char> left;	//커서의 좌측
		stack<char> right;	//커서의 우측	//우측은 읽는 순서가 반대 pop해야됨

		for (int j = 0; j < temp.length(); j++)
		{
			if (temp[j] == '<')
			{
				if (!left.empty())	//left가 비어있지 않을때만
				{
					right.push(left.top());	//왼쪽의 오른쪽끝의 값을 우측에넣는다.
					left.pop();	//왼쪽의 우측끝값 삭제
				}
			}
			else if (temp[j] == '>')
			{
				if (!right.empty())
				{
					left.push(right.top());	//오른쪽의 첫번째 값을 왼쪽에 넣는다.
					right.pop();
				}
			}
			else if (temp[j] == '-')
			{
				if (!left.empty()) left.pop();	//현재 커서의 왼쪽값 삭제
			}
			else
			{
				left.push(temp[j]);	//현재 커서에 값 넣기
			}
		}

		string result;
		string result2;
		while (!right.empty()) {
			left.push(right.top());
			right.pop();
		}
		while (!left.empty()) {
			result += left.top();
			left.pop();
		}

		for (int j = 0; j < result.length(); j++)
		{
			result2 += result[result.length() - j - 1];	//반대로 값을 뒤집어준다.
		}

		cout << result2 <<"\n";
	}

	return 0;
}

후입 선출을 이용한 커서 위치를 사용하였다.

처음에는 커서위치를 변수로 따로 번호를 두어 사용하려했지만

이게 더 좋은 선택인 것 같다.

저작자표시 (새창열림)

'Algorithm > Baekjoon' 카테고리의 다른 글

[C++] 백준 1427 소트인사이드  (0) 2021.02.03
[C++] 백준 1920 수 찾기  (0) 2021.02.02
[C++] 백준 1966 프린터 큐  (0) 2021.02.01
[C++] 백준 1874 스택 수열  (0) 2021.02.01
[C++] 백준 2798 블랙잭  (0) 2021.02.01
'Algorithm/Baekjoon' 카테고리의 다른 글
  • [C++] 백준 1427 소트인사이드
  • [C++] 백준 1920 수 찾기
  • [C++] 백준 1966 프린터 큐
  • [C++] 백준 1874 스택 수열
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
왜 그렇게 생각했는가?'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Java
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    dp
    JPA
    알고리즘
    c++ 기초 플러스
    JWT
    위클리 챌린지
    SpringSecurity
    티스토리챌린지
    dfs
    프로그래머스
    오블완
    백준
    Java
    spring
  • hELLO· Designed By정상우.v4.10.0
chanheess
[C++] 백준 5397 키로거

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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