-
04 연결리스트- 백준 5397Algorithm/baekjoon 2022. 1. 17. 16:50
1. 백준 5397 : 키로거
(1)코드
#include<iostream> #include<list> #include<string> using namespace std; int main(void) { int n; cin >> n; for (int j = 0; j < n; j++) { string input; cin >> input; list<char>pw; list<char>::iterator itr = pw.end(); for (int i = 0; i < input.length(); i++) { if (input[i] == '<') { if (itr == pw.begin())continue; itr--; } else if (input[i] == '>') { if (itr == pw.end())continue; itr++; } else if (input[i] == '-') { if (itr == pw.begin())continue; itr = pw.erase(--itr); } else { pw.insert(itr, input[i]); } } for (auto it = pw.begin(); it != pw.end(); it++) { cout << *it; } cout << '\n'; pw.clear(); } return 0; }
(2)알게된 개념
1.STL list 자료구조에서 insert() 과 erase() 기능
-insert() 기능
L={'A','B','C'} 이고 itr이 B를 가리킬 때
insert(itr,'D') 를 실행하면
L={'A','D','B','C'}가 된다.
이후, itr는 'B'를 가리킨다.
-erase() 기능
L={'A','B','C'} 이고 itr이 B를 가리킬 때
erase(itr) 를 실행하면
L={'A','C'}가 되며
itr는 'C'를 가리킨다.
참고블로그)
https://hugssy.tistory.com/217
STL list insert, erase (C++)
C++ STL list의 삽입과 삭제에 대해서 간단히 정리하고자 한다. STL list .insert(iterator, 넣을 값) L = { A, B, C } 연결리스트는 A->B->C 와 같이 구성되어 있는 것이지만 표기의 편의성을 위해 위와 같이 표..
hugssy.tistory.com
2.STL list 자료구조에서 begin() 과 end()
참고블로그)
'Algorithm > baekjoon' 카테고리의 다른 글
1924 2007년 (0) 2022.02.12 2028 자기복제수 (0) 2022.02.12 1120 문자열 (0) 2022.02.11 05 스택 (0) 2022.01.26 03 배열 - 백준 2577/백준 1475/백준 3273 (0) 2022.01.08