반응형
문제 출처 :
https://www.acmicpc.net/problem/1406
알고리즘 분석 :
문제 해결에 필요한 사항
1. 구현
단순 구현 문제이다.
커서의 구현이 가장 중요하다고 생각되는데 string 과 insert, erase를 이용하여 커서를 position을 적절히 설정하면서
문제를 해결한다면 어렵지 않게 문제를 해결 할 수 있는 문제이다.
문제의 설명보다 아래 소스 코드를 보며 설명을 분석해보는 것이 더 쉬울 것 같다.
'B'를 입력할 때는 자신의 왼쪽 문자를 지워야 하니 erase를 cur - 1 , cur로 설정해준다.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string str; cin >> str; int n; scanf("%d", &n); int cur = str.size(); for (int i = 0; i < n; i++) { char ch, val; scanf(" %c", &ch); if (ch == 'L') if (cur > 0) cur--; else if (ch == 'D') if (cur < str.size()) cur++; else if (ch == 'P') { scanf(" %c", &val); str.insert(str.begin() + cur, val); cur++; } else if (ch == 'B') if (cur != 0) { str.erase(str.begin() + cur - 1, str.begin() + cur); cur--; } } cout << str; return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[Codeground 30번] Rectangles (0) | 2017.06.29 |
---|---|
[12852번] 1로 만들기 2 (0) | 2017.06.29 |
[3053번] 택시 기하학 (0) | 2017.06.28 |
[1145번] 적어도 대부분의 배수 (0) | 2017.06.28 |
[1926번] 그림 (0) | 2017.06.22 |