본문 바로가기

stack4

[BOJ] 2504번: 괄호의 값 https://www.acmicpc.net/problem/2504 나는 이런 문제가 나올 때마다 내 코딩 실력에 너무 자괴감이 든다... 열심히 해야지... 그 간단한 temp 변수 하나를 생각 못해서 뻘짓을 하고 있었다니!!! 말 그대로 tmp는 괄호가 닫힐 때까지 임시로 값을 저장해 주는 변수다. #include #include using namespace std; char s[31]; int val, tmp = 1; stack stk; int main() { scanf("%s", s); for (int i = 0; s[i]; ++i) { switch (s[i]) { case '(': tmp *= 2; stk.push('('); break; case ')': if (stk.empty()) return.. 2018. 7. 27.
[BOJ] 10799번: 쇠막대기 https://www.acmicpc.net/problem/10799 괄호가 닫히는게 막대기의 끝인지 레이저인지 잘 구분해야 한다. '('일 땐 계속 스택에 집어넣는다. ')'일 땐 무조건 pop을 한다. 레이저일 땐, 여태까지 스택에 넣었던 개수 즉, 나열된 막대기의 개수를 더한다. 막대기의 끝에선 항상 막대기 조각 하나만 남기 때문에 그것의 개수(1)을 더한다. #include #include int idx; int main() { int result = 0; char st[100000]; scanf("%s", st); for (int i = 0; i < strlen(st); ++i) { if (st[i] == '(') { idx++; } else if (st[i] == ')' && st[i - 1] .. 2018. 7. 26.
[BOJ] 10828번: 스택 https://www.acmicpc.net/problem/10828 6달 전에 짠 코드는 4ms가 나왔는데 똑같은 코드로 이틀 전에 제출했더니 0ms가 나왔다. ㅋㅋㅋ 재미있네 이런 문제는 사실 N의 제한이 있기 때문에 굳이 링크드 리스트로 구현할 필요는 없다. 그리고 문자열을 다 볼 필요 없이 앞 1~2자리만 봐도 어떤 입력인지 알 수 있다. #include #include #define MAX 10001 typedef struct stack { int Stack[MAX]; int size; int empty; int top; } stack; stack Stk; int main() { Stk.empty = 1, Stk.size = 0; int N; scanf("%d", &N); for (int i = .. 2018. 7. 26.
비선형 구조의 탐색 비선형 구조 이번 글은 비선형 구조란 무엇이고 탐색하는 대표적인 방법, 그래프 구현 방법을 설명한다. Reference> 트리, 그래프 비선형 구조란? i번째 원소를 탐색한 다음 그 원소와 연결된 다른 원소를 탐색 할 때, 다음에 탐색 가능한 원소가 여러 개 존재하는 구조. 일반적으로 트리나 그래프 형태로 자료를 구성할 수 있을 때 해당한다. 비선형 구조에서 탐색 방법 주로 트리나 그래프가 비선형 구조의 대표적인 형태이다. 비선형 구조는 데이터가 순차적으로 있지 않기 때문에 스택이나 큐를 이용해서 탐색을 한다. 비선형 구조에서 키워드 데이터가 있는 곳: 노드(node)/정점(vertex) 데이터를 잇는 선: 간선(edge)/링크(link) 간선은 화살표 유무에 따라 양/단방향으로 표현 가능하고, 간선에는.. 2018. 5. 8.