본문 바로가기

알고리즘/Stack & Queue & Deck4

프로그래머스 - 고득점 킷 : 기능개발 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 생각하기 처음에는 각 진도 상황을 deque에 넣고 계속 시간별로 for문을 돌면서 popleft 할 것들을 찾아보려했다 하지만 시간별로 가면 최대 100의 시간을 돌것이고 100개의 기능이 있다면 100개의 기능들의 진도상황을 업데이트 해주어야 할것이다 -> O(100 * 100) = O(10000) 가장 앞에 있는 기능과 뒤에 기능들의 진도상태를 비교.. 2022. 3. 25.
[Queue] 백준 1158 - 요세푸스 문제 생각하기 큐는 순환시 이용하는 자료구조 1부터 N까지 큐에 넣는다 (큐가 빌 때까지) K번째 숫자라면 pop하고 아니면 pop 시킨후 다시 push 시킨다 #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define MAX 1000000 int N, K; int alpha[26]; int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin>>N>>K; queue q; vector ans; for(int i=1; i 2021. 2. 26.
[Stack] 백준 1935번 - 후위 표기식2 생각하기 문자를 숫자화하여서 index 삼아 배열에 숫자를 저장 A~Z사이면 stack에 넣고 연산자이면 stack에서 두개를 꺼내서(꺼낼때 변수 저장 거꾸로) 둘을 연산 후 다시 stack에 push #include #include #include #include #include #include using namespace std; #define endl '\n' #define MAX 1000000 int N; int alpha[26]; int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin>>N; string input; stack st; cin>>input; char letter = 'A'; double number; for(.. 2021. 2. 26.
[Stack] 백준 9012번 - 괄호 생각해보기 열린괄호는 stack에 넣다가 닫힌 괄호가 나오면 stack에 열린괄호 있는지 없는지 확인 1. '('가 나타나면 모두 stack에 push로 넣어준다 2. ')'가 보이면 stack에 있는 '('을 Pop 시킨다 만약 이때 stack에 아무것도 없다면 바로 NO 3. input string의 모든 것을 다 보았다면 이때의 stack이 empty면 YES empty가 아니면 NO #include #include #include #include #include using namespace std; #define endl '\n' #define MAX 1000000 int T; // int numbers[1025][1025]; 사실상 필요가 없다 int main() { ios_base::sync_.. 2021. 2. 25.