본문 바로가기

Stack

(12)
[Flutter] 페이지 이동 - 네비게이터(Navigator) 이해하기 페이지 이동 기능을 구현하기 위해서는 먼저 Route와 Navigator의 개념을 이해해야 한다. Route? 단순히 스마트폰에서 하나의 페이지, 화면. Scaffold 위젯을 리턴하는 모든 커스텀 위젯 하나하나가 route이다. Navigator? 모든 앱페이지들(Routes)을 관리하며 stack 자료구조 형식으로 route 객체들을 관리한다. 이 stack 자료구조를 관리하기 위해서 Navigator.push와 Navigator.pop이라는 메서드를 제공한다. import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(B..
[BOJ] 11899번 괄호 끼워넣기 (C++) https://www.acmicpc.net/problem/11899 11899번: 괄호 끼워넣기 첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다. www.acmicpc.net #include #include #include using namespace std; int main() { stack s; stack t; string str; cin >> str; for(int i = 0; i < str.length(); i++){ char c = str[i]; if(c == '('){ s.push(str[i]); } else { if(!s.empty()) s.pop(); else t.push(str[i]); } } cou..
[BOJ] 9012번 괄호 (C++) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; for(int i = 0; i > str; bool check = true; for(..
[C++] STL - 컨테이너 어댑터(container adapter) [stack, queue] stack 스택 컨테이너는 vector 클래스를 기반으로 한다. 스택의 메모리 구조는 LIFO(Last In First Out)를 따르는 자료구조이다. DFS(Depth First Search, 깊이 우선 탐색)나 특별한 알고리즘이 필요한 상황이 아니라 문제 상황을 구현하는 데 LIFO의 구조를 가지고 있다고 판단되는 문제를 풀 때 사용된다. #include stack 스택명; 스택의 멤버함수를 확인하면 다음과 같다. s.size() : s의 원소의 개수를 반환(메모리 용량이 아님) s.empty() : s가 비어있는지 확인, 비어있으면 true를 반환한다. s.top() : s의 제일 위에 위치한(제일 나중에 저장된) 원소를 반환 s.push(x) : s에 x값을 저장 s.pop() : s의 제일 위에..