스택

Algorithem/백준 PS with code

(python) 백준 #2493 - [G5] 탑 : 스택

2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 유의미한 탑만 남기자 유의미한 탑은 신호가 도달할 가능성이 있는 탑이다. 자기자신보다 큰 탑에 신호가 완전히 막힌 탑은 앞으로 무의미한 탑이된다. 그런 탑들을 제외하면서 정보를 가져가면 빠르게 탐색할 수 있다. 스택을 이용해서 관리할 수 있다. 앞에서부터 탐색을 진행하면서 스택의 가장 위에 있는 탑보다 현재 탑이 더 높은 경우 스택에 있는 탑은 무의미한 탑이 되므로 pop해서 모두 제거한 뒤 현재 탑을 스택에 추가한다. 시간복잡도 시간복잡도는 O(N)으로 대..

Algorithem/백준 PS with code

백준 #1406 - [S2] 에디터 : 스택

(python3) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 커서 기준 좌우로 나눠서 스택을 활용하기 배열의 중간에 값을 추가하거나 삭제하는건 굉장히 고된 일입니다. 이 문제의 경우 가운데 값을 고치게 되면 시간초과가 발생합니다. 커서 기준으로 배열을 나눠서 관리하면 두 배열의 맨 뒤 값만 고치면 됩니다. 이 경우 배열로 풀려면 커서 오른쪽 문자열 배열은 순서를 거꾸로 관리해야합니다. 왼쪽끝에서 떼어낸건 오른쪽 맨 앞에 붙어야하기 때문이죠. 저는 이것까지 고려하지않고 직관적으로 작성하기 위해서 collec..

jamong5
'스택' 태그의 글 목록