From 0b3938dcac95b780213f2529636563e2a97b335d Mon Sep 17 00:00:00 2001 From: eucha09 Date: Fri, 7 Jul 2023 18:51:37 +0900 Subject: [PATCH] upload: ch09 1406 codes(cpp, py) --- .../1406.cpp" | 51 +++++++++++++++++++ .../1406.py" | 23 +++++++++ 2 files changed, 74 insertions(+) create mode 100644 "Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" create mode 100644 "Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" new file mode 100644 index 0000000..c947ac3 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" @@ -0,0 +1,51 @@ +#include +#include +#include +using namespace std; + +int main(void) +{ + char origin[100001]; + list lst; + int M; + + scanf("%s", origin); + for (int i = 0; origin[i]; i++) + lst.push_back(origin[i]); + + scanf("%d", &M); + list::iterator it = lst.end(); + while (M--) + { + char cmd; + scanf(" %c", &cmd); + if (cmd == 'L') + { + if (it != lst.begin()) + it--; + } + else if (cmd == 'D') + { + if (it != lst.end()) + it++; + } + else if (cmd == 'B') + { + if (it != lst.begin()) + { + it--; + it = lst.erase(it); + } + } + else if (cmd == 'P') + { + char c; + scanf(" %c", &c); + lst.insert(it, c); + } + } + + string result(lst.begin(), lst.end()); + printf("%s\n", result.c_str()); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" new file mode 100644 index 0000000..12ea2f2 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" @@ -0,0 +1,23 @@ +import sys +input = sys.stdin.readline + +origin = input().rstrip() +left_lst = list(origin) +right_lst = [] +M = int(input()) +while M > 0: + cmd = input().rstrip() + if cmd[0] == 'L': + if left_lst: + right_lst.append(left_lst.pop()) + elif cmd[0] == 'D': + if right_lst: + left_lst.append(right_lst.pop()) + elif cmd[0] == 'B': + if left_lst: + left_lst.pop() + elif cmd[0] == 'P': + left_lst.append(cmd[2]) + M -= 1 + +print(''.join(left_lst + right_lst[::-1]))