stack 2

키로커_스택_백준_5397

-문제- -문제 접근- 문제에서 강산이가 입력한 키에 일반 문자, 백스페이스, 를 순서대로 처리하여 최종 문자열을 복원을 해야 되는 문제입니다.  -문자열 접근-이 문제를 처음 접근할 때 가장 단순한 방법인 일반 문자열을 떠올릴것 입니다.하지만 일반 문자열을 사용하게 되면 중간에 문자를 삽입하거나 삭제하게 되면 모든 문자들을 이동시켜야 하므로 최악의경우 O(n)의 시간복잡도를 가질 수 있기 때문에 매우 비효율적입니다. -두 개의 스택 사용-문제에서 커서의 위치를 중점으로 두 스택으로 좌 우를 관리하면 커서의 이동은 스택 간의 이동으로 구현이 됩니다.push와 pop의 연산은 O(1)이므로 총 시간 복잡도가 입력 키의 개수를 L이라면 O(L)을 가지게 되므로 효율적입니다. 문자열 총 시간 복잡도: 입력 키..

IT/Algorithm 2025.03.03

스택 수열_백준_1874

-문제- -문제 접근- 1. 문제이해 입력:첫 줄에 정수 n (1 ≤ n ≤ 100,000): 스택에 넣을 숫자의 개수이후 n개의 줄에 걸쳐, 목표 수열의 각 원소(1 이상 n 이하, 중복 없음)가 주어진다.출력:목표 수열을 만들기 위해 수행한 연산을 한 줄에 하나씩 출력한다.push 연산은  +pop 연산은  -만약 수열을 만들 수 없는 경우에는 NO를 출력한다.2. 문제 접근 스택(LIFO):스택은 마지막에 삽입한 요소가 가장 먼저 삭제됩니다.따라서, 원하는 출력 수열을 만들기 위해서는 스택에 push할 때 반드시 오름차순으로 1부터 n까지 순서대로 넣어야 합니다.연산 결정:목표 수열의 각 target을 하나씩 처리하면서 Push와 Pop으로 나눠 진행합니다.Push 단계:현재 스택에 아직 push하..

IT/Algorithm 2025.02.27