Stack
-
BOJ 10828 : 스택백준 문제풀이/etc 2020. 7. 9. 00:01
문제 문제 풀어보기 풀이 종종 면접 문제로 나오는 유형이네요. 면접에서는 보통 배열로 구현하라고 합니다. 그러면 벡터의 기본 함수를 사용 할 수 없어서 조금 복잡해지겠네요. 코드 #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); vector v; int t; cin >> t; int x; string s; while (t--) { cin >> s; if (s == "push") cin >> x; if (s == "push") v.push_back(x); else if (s == "pop") { if (v.empty() == true) { cout
-
[C/C++] C++ STL Stack 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 22. 16:05
사용 라이브러리 · 기본함수 선언문 · stack s; 삽입 및 추출 · push(element) : 가장 위에 원소를 삽입 · pop() : 가장 위에 있는 원소 추출 조회 · top() : 가장 위에 있는 원소를 가져옴 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include using namespace std; int main() { stack s; ////////////삽입 및 추출///////////////// s.push(1); // 1 s.push(2); // 2 1 s.push(3); // 3 2 1 s.push(4); // 4 3 2 1 s.pop(); // 3 2 1..
-
[STACK] BOJ 1874 번 문제풀이백준 문제풀이/etc 2019. 5. 13. 13:33
문제 분석 문제에 친절하게 스택을 사용하라고 나와있죠? ㅎㅎ 내용은 이렇습니다. 원하는 수를 사용하기 위해서는 반드시 스택에 push, pop 하는 과정을 거쳐야 합니다. 스택에 값은 아래의 그림처럼 채워집니다. 예를 들어, 가장 처음에 5를 사용해야 한다면 1 ~ 5 의 숫자를 push 한 후에 pop 을해서 사용하는 겁니다. 이게 이해가 되셨다면, 만들고자 하는 배열을 저장해야 하는데 이 배열을 큐에 저장하면 간단합니다. 입력 파트를 보면 먼저 입력된 값부터 스택에서 추출하기 때문입니다. 따라서 예시문제를 순서대로 큐에 push 하게 되면 아래 그림처럼 채워집니다. 자, 이제부터 알고리즘을 설계해봅시다. 1. 큐를 선언하여 입력되는 값을 큐에 넣습니다. 2. 우선 큐의 front 값에 대해서 처리해줍..
-
[STACK] BOJ 9012 번 문제풀이백준 문제풀이/etc 2019. 5. 12. 00:33
문제분석 굉장히 읽기 싫을 정도로 긴 문제지만 결국 소괄호가 한쌍으로 존재하는 가? 를 묻는 문제네요. ㅎㅎ 알고리즘 문제를 풀 때, 접근법이 굉장히 중요한 게 제가 처음에 이 문제를 접근하는 방법은 이렇습니다. '(' , ')' 두 개의 개수를 카운트해서 같으면 VPS 이다 ~ 라고 접근했습니다. 이 방법 역시 그렇게 어렵진 않지만 굉장히 단순 무식한 방법 같았습니다. 그래서 다른 분들의 코드를 보니 세상에 천재들이 많더군요. 개발자 지망생 김 모 씨의 접근법은 이렇습니다. 여는 괄호 '(' 가 나오면 무조건 스택에 PUSH 하고 닫는 괄호 ')' 가 나왔을 때, 배열 안에 여는 괄호 '(' 가 존재하면 스택에서 POP 하고 배열이 비어있다면 FALSE 하는 겁니다. 같은 문제를 이렇게 구현할 수 있다..