본문 바로가기

CodingTest/Baekjun Online Judge

[ BOJ / 파이썬 ] 1406 에디터

바로 이 전 글인

https://proprotrainee.tistory.com/156?category=1104458 

 

[ BOJ / 파이썬 ] 5397 키로거

커서 움직이는 것에 대한 조작 문제이다. 쉬워보여서 덤볐다가 못 풀었다. 진짜 쓰렸는데, 다른 분들 풀이 보니까 접근법이 어느정도 유형화되어 있는 것 같고, 도저히 혼자서는 못 풀었을 것 같

proprotrainee.tistory.com

이 글의 문제와 비슷한 유형인 것 같아 바로 풀어봤다. 위의 문제는 스스로 풀어내지 못했다.

 

미쳤다.. 진짜 감동적이야.. 내가 이런 문제를 한 번에 맞다니..

정말 약간 벅찬다.. 이게 바로 양치기의 승리를 암시하는 것 같아서 설레면서도 두려워졌다.

평소 같았으면 풀지 못 했을 것 같은 문제인데, 비슷한 유형을 풀고 와보니 어떻게 해야할 지 감이 잡혔다.

기분 너무 좋다.. 더 풀어 더 풀어 더 많이 풀자 ㅠㅜ 흑흑..

 

import sys
input = sys.stdin.readline


initString = input().strip()
t = int(input())
left = list(initString)
right = []
for i in range(t):
  
  
  inputData = input().strip()
  if inputData[0] == 'P':
    p, x = inputData.split(" ")
    left.append(x)
  elif inputData == 'L':
    if left:
      right.append(left.pop())
  elif inputData == 'D':
    if right:
      left.append(right.pop())
  elif inputData == 'B':
    if left:
      left.pop()

print("".join(left) + "".join(reversed(right)))

 

 

덧붙이자면, 해당 문제는 프로그래밍할 때도 되게 유용하게 쓰일 것 같은 코딩구조라서 알고 간다는 사실이 더 좋은 것 같다.