문자열 2

[백준] 5430 AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제를 읽어보고 오자. 명령어에 따라서 숫자를 제거하거나 방향을 뒤집는 문제이다. 함수의 길이는 최대 10만개이므로, 실제로 위치를 바꾸게 되면은 속도가 매우 느려지게 된다. 또한, 주어진 데이터를 적절히 파싱해야 한다. 앞뒤 모두 pop 연산을 수행할 수 있는 deque 자료형을 사용하는 것이 좋다. 덱 자료형은 삽입 연산, pop 연산 등에서 준수한 속도를 보여주기 때문이다. 명령어와 조건에 맞게 현재 상태가 역방향인지 순방향인지 판별한다. 또한 파..

[백준] 5397 키로거

https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L의 길이 ≤ 1,000,000) 강산이가 백스페이 www.acmicpc.net 문제를 읽어보고 오자. 커서를 옮기면서 문자열을 삽입 혹은 제거하는 문제이다. 이 문제는 길이가 최대 100만인 만큼, 동작함에 있어서 최소한의 계산만 있어야 한다. 나의 경우에는 중간에 삽입하는 과정 때문에 list 자료형을 사용하기로 했다. 리스트 구조는 내부적으로 링크드 리스트 구조를 가지고 있어서 중간에 삽입하는 구조에 대하여 상당히 유리하다. iterator만 잘 다루면 간단히 풀..