빠똥빠똥
1406번 에디터(list) 본문
#문제링크 : https://www.acmicpc.net/problem/1406
메모장을 구현한다고 생각하자. '커서'라는게 존재한다. 커서는 한번에 왼쪽으로나 오른쪽으로 한번씩 밖에 움직이지 못한다. 이미 커서의 이런 특성으로 STL컨테이너 중에 List와 동작방식이 비슷함을 알 수 있다. 커서는 C의 포인터와 비슷한 개념이다. 또한 문자가 N개 있다면 커서의 위치는 N+1이 됨은 자명하다. 시퀀스 컨테이너(Vector, Deque, List)의 특징을 보면 항상 end()함수가 마지막 원소 그 다음을 가리킨다. 즉, 반복자를 활용하면 커서를 정의할 수 있다는 말이다. 그렇다면 List의 함수들의 용도를 잘 살피고 여기에 적용하면 그만이다.
※주의사항
1. string 변수는 사이즈를 구할 수 있으며 S[i]와 같이 문자 하나하나에 접근이 가능하다.
2. 시퀀스 컨테이너 함수 중 end()함수는 마지막 요소 다음을 가리킨다.
3. 반복자를 사용하여 C언어에서의 포인터와 같은 용도로 활용이 가능하다.
4. list.erase(iter)의 반환 값은 해당 노드를 지우고 그 다음 노드를 가리키는 반복자를 반환한다.
5. list.insert(iter, temp)는 iter가 가리키는 노드 바로 왼쪽(앞)에 새로운 내용(temp)을 담은 노드를 삽입한다.
'백준' 카테고리의 다른 글
1181번 단어 정렬(sort함수 사용법) (0) | 2020.05.04 |
---|---|
1026번 보물(sort) (0) | 2020.05.03 |
10866번 덱(deque) (0) | 2020.05.02 |
10845번 큐(Queue) (0) | 2020.05.02 |
10828번 스택(stack) (0) | 2020.05.02 |