BOJ/stack,deque,queue(2)
-
괄호 끼워넣기(BOJ11899)
문제문제 설명괄호문자열이 주어 졌을 때 올바른 괄호열을 만들기 위해서 몇 개의 괄호를 추가하여야 하는지 물어보는 문제이다.올바른 괄호열은 (A) , AB (A,B는 올바른 괄호열)의 형태를 만드는 것을 의미한다.최종 코드문자괄호열과 같은 경우는 스택을 활용한다면 올바른 괄호를 찾을 수 있다.만약 '('괄호가 맨위에 있다면 다음과 같은 작업을 할 수 있다.( 가 들어왔을 때: (와 (는 올바른 괄호문자열이 아니기 때문에 스택에 넣어준다.)가 들어왔을 때: (와 )는 올바른 괄호문자열이기 때문에 (를 pop 해준다.위와 같은 방식으로 한다면 결국 올바른 괄호문자열이 아닌 문자들만 남게 되고 결국은 올바른 괄호문자열이 아닌 문자들의 개수만큼 괄호를 추가해 주면 올바른 괄호열이 된다.#includeusing n..
2024.11.13 -
최솟값 찾기(BOJ 11003)
문제문제 설명이 문제는 deque을 이용하여서 값들을 deque에 넣어주고 만약 deque의 원소의 개수가 입력받은 숫자보다 더 커지게 된다면 deque의 앞에 있는 숫자를 뻬고 뒤에 숫자를 넣어주면서 최솟값을 갱신해 나가는 문제입니다. 하지만 deque에 모든 숫자를 넣어가면서 최솟값을 확인해 나간다면 시간초과가 발생하기 때문에 입력받는 자연수와 그 자연수의 인덱스값을 deque에 넣어서 최솟값을 찾아 주었습니다. 자세한 내용은 아래에서 설명드리도록 하겠습니다.전체 코드#include using namespace std;int n, m;//n:입력받는 자연수 개수, m:덱 내부의 자연수 최대 개수deque> dq;int main() { ios::sync_with_stdio(0);cin.tie(0);c..
2024.05.06