[백준/C++] 5397번 키로거 List

2021. 12. 3. 01:20·기타

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

 

5397번: 키로거

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입

www.acmicpc.net

// 코드

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;

    for(int i = 0; i < N; i++){
        list<char> l;
        string s;
        list<char>::iterator t = l.begin(); 
        // t에 list 시작 주소를 저장

        cin >> s; // 문자열 입력
        for(auto c : s){
            if(c == '<'){
                if(t != l.begin()) t--; 
                // t가 시작 주소가 아니라면 주소 -1
            }
            else if(c == '>'){
                if(t != l.end()) t++; 
                // t가 끝 주소가 아니라면 주소 +1
            }
            else if(c == '-'){
                if(t != l.begin()){
                t--;
                t = l.erase(t);
                } // t가 끝주소가 아니라면 - 앞에 있는 문자 삭제
            }
            else l.insert(t, c);
            // t 주소에 문자 c 삽입
        }
        //출력
        for(auto r : l) cout << r;
        if(i != N-1) cout << "\n";
    }
    return 0;
}

// 리뷰

List를 활용해서 풀었는데 전체적으로 보면 문자만 List에 저장해놓고

주소 값을 '<' 와 '>' 이면 주소를 움직이고 '-'는 바로 앞의 주소를 삭제한다.

List iterator에 대해서 조금씩 익숙해지는 느낌이다.

'기타' 카테고리의 다른 글

[백준/C++] 1259번 팰린드롬수  (0) 2021.12.04
[C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )  (2) 2021.12.03
[백준/C++] 1158번 요세푸스 문제 List iterator 사용  (0) 2021.12.02
C++ STL Vector 사용법  (1) 2021.12.01
[백준/C++] 3273번 두 수의 합  (0) 2021.11.29
'기타' 카테고리의 다른 글
  • [백준/C++] 1259번 팰린드롬수
  • [C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )
  • [백준/C++] 1158번 요세푸스 문제 List iterator 사용
  • C++ STL Vector 사용법
heyh0
heyh0
  • heyh0
    doblog
    heyh0
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 2025
      • 2024
      • History
      • 기타
  • 블로그 메뉴

    • GitHub
  • 인기 글

  • 태그

    socket
    동시성
    회고
    프로젝트
    oauth
    AOP
    Til
    C++
    Spring
    DB
    querydsl
    Algorithm
    redis
    테스트
    jpa
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
heyh0
[백준/C++] 5397번 키로거 List
상단으로

티스토리툴바