티스토리 뷰
반응형
문제
1406번: 에디터
문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는
www.acmicpc.net
풀이
처음에 생각한 방법은 쭈르륵 배열에 넣고 커서의 위치를 인트형 인덱스로 따로 관리하는것.
근데 시간제한이 엄청 빡빡한 문제였다.
따라서 왼쪽, 오른쪽 스택 두개를 만들어서 사용하고 그 사이를 커서의 위치로 생각하고 풀었다.
첫번째 시도
lstack = []
rstack = []
init = input()
for each in init:
lstack.append(each)
N = int(input())
for _ in range(N):
cmd = input()
if cmd == 'L':
if lstack:
rstack.append(lstack.pop())
elif cmd == 'D':
if rstack:
lstack.append(rstack.pop())
elif cmd == 'B':
if lstack:
lstack.pop()
else:
lstack.append(cmd.split(" ")[1])
for each in lstack:
print(each, end="")
rstack.reverse()
for each in rstack:
print(each, end="")
테스트 케이스는 다 통과가 되는데 시간초과가 났다.
sys를 안쓰고 그냥 인풋으로 받은게 큰것같았다.
두번째 시도
from sys import stdin
lstack = list(stdin.readline().strip())
rstack = []
N = int(input())
for _ in range(N):
cmd = input()
if cmd == 'L':
if lstack:
rstack.append(lstack.pop())
elif cmd == 'D':
if rstack:
lstack.append(rstack.pop())
elif cmd == 'B':
if lstack:
lstack.pop()
else:
lstack.append(cmd.split(" ")[1])
print(''.join(lstack + list(reversed(rstack))))
또 시간초과....
세번째 시도
import sys
lstack = list(sys.stdin.readline().strip())
rstack = []
N = int(input())
for _ in range(N):
cmd = sys.stdin.readline()
if cmd[0] == 'L':
if lstack:
rstack.append(lstack.pop())
elif cmd[0] == 'D':
if rstack:
lstack.append(rstack.pop())
elif cmd[0] == 'B':
if lstack:
lstack.pop()
else:
lstack.append(cmd[2])
print(''.join(lstack + rstack[::-1]))
포문 안에 명령값을 받는 인풋도 sys.stdin.readline으로 바꿔줬다.
그리고 마지막에 프린트할때도 뒤집어서 출력해야하는 rstack을 reversed가 아니라 [::-1]로 바꿔줬다.
그랬더니 통과!
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준알고리즘
- counting sort
- flutter simultor
- 안드로이드 카카오톡으로 로그인
- TextFormField keyboard
- 투포인터 알고리즘 파이썬
- 백준
- 안드로이드 키해시
- 카카오 키해시
- 코틀린 데이터바인딩
- 파이썬 최대공약수
- 카카오 기출
- 데이터바인딩 뷰바인딩 차이
- 투포인터 알고리즘
- 코틀린 뷰바인딩
- kotlin fragment
- 백준 1644
- 전화번호목록 파이썬
- 소수 구하기 파이썬
- 백준 1806
- 안드로이드
- 코틀린 리스트뷰
- 카카오톡으로 로그인 오류
- Kotlin
- 시뮬레이터 키보드
- 코틀린 바텀네비게이션
- 백준 2003
- 코틀린 뷰페이저
- 프로그래머스
- 코틀린
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함