백준
백준 1406번 어떻게 풀었나. 파이썬 내장함수 시간복잡도 정리
kimbro6
2023. 1. 6. 00:01
- 푼 방법
- 처음엔 insert와 del을 사용하였다.
- 그랬더니 시간초과가 나왔다.
- 왜 그린지 못찾겠어서 구글링했다.
- insert와 del은 시간복잡도가 O(n)이다. 사용을 지양하는 것이 좋다.
- 구글링을 한 결과, 스택을 두개 사용하여 풀 수 있었다.
- 고치면 좋을 부분
- 파이썬의 내장함수의 시간복잡도를 잘 알아야 겠다.
- 걸리는 시간을 고려하지 않고 작성했다.
- 계획하기 단계를 좀 더 체계적으로 해야 될거 같다
- .readline().strip() 보다 .readline().rstrip()이 더 빠를거 같다.
- 파이썬 내장함수 시간복잡도 정리
코드
import sys
stackLeft = list(sys.stdin.readline().rstrip())
stackRight = list()
N = int(sys.stdin.readline())
for i in range(N):
cmd = list(sys.stdin.readline().split())
if cmd[0] == 'L' and stackLeft:
stackRight.append(stackLeft.pop())
elif cmd[0] == 'D' and stackRight:
stackLeft.append(stackRight.pop())
elif cmd[0] == 'B' and stackLeft:
stackLeft.pop()
elif cmd[0] == 'P':
stackLeft.append(cmd[1])
print(''.join(stackLeft) + ''.join(list(reversed(stackRight))))
참고자료
https://developer-doreen.tistory.com/51?category=1133953
https://developer-doreen.tistory.com/29
감사합니다