언어: python
번호: 1406
제목:에디터
등급: 실버 2
풀이 과정:
원래는 리스트 하나를 만들어 풀려했지만 시간이 초과되서 스택 2개를 만들어 풀었다. 커서의 위치를 기준으로 왼쪽 리스트(s1)과 오른쪽 리스트(s2)를 만들어 명령에 맞게 pop()함수를 사용했다.
내 코드:
import sys
INPUT = sys.stdin.readline
s1 = list(INPUT())
s2 = []
n = int(INPUT())
for _ in range(n):
command = list(INPUT().split())
if command[0]=='L':
if s1:
s2.append(s1.pop())
elif command[0]=='D':
if s2:
s1.append(s2.pop())
elif command[0]=='B':
if s1:
s1.pop()
else:
s1.append(command[1])
print(''.join(s1), end='')
print(''.join(reversed(s2)))
메모:
리스트의 0번째 요소를 반환하고 출력할때 leftpop()함수를 사용하는 방법도 있다.
'BOJ' 카테고리의 다른 글
[백준/BOJ] python 10974번 모든 순열 (0) | 2024.01.20 |
---|---|
[백준/BOJ] python 10982번 다음 순열 (0) | 2024.01.20 |
[백준/BOJ] python 9093번 단어 뒤집기 (0) | 2023.07.30 |
[백준/BOJ] python 10828번 스택 (0) | 2023.07.30 |
[백준/BOJ] python 5800번 성적 통계 (0) | 2023.02.20 |