본문 바로가기
반응형

stack12

BOJ 9012 : 괄호 SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 알고리즘 문제 전체 링크 www.acmicpc.net/problem/9012 올바른 괄호인지 체크하는 문제이다.실제로 작성하는 cpp 코드를 생각하면 쉽다.코드를 작성할 때, 열린 괄호 '('를 썼다면 반드시 닫힌 괄호 ')'를 써야한다.즉, 열린 괄호를 +1, 닫힌 괄호를 -1이라고 생각한다면 마지막에는 반드시 0이 되어야 한다. 열린 괄호 뒤에는 다시 열린 괄호 또는 닫힌 괄호가 와야한다.그러므로, 괄호가 완전히 닫히기 전에 닫힌 괄호가 열린 괄호보다 많아서는 안된다. #include int main(void){ int T; scanf("%d", &T); for (int tc = 0; tc 2021. 2. 7.
BOJ 10773 : 제로 알고리즘 문제 전체 링크 www.acmicpc.net/problem/10773 스택 기본 구현 문제 BOJ 10828과 같은 문제이다. BOJ 10828보다 쉬운 점은, push, pop만 구현하면 된다. 정수가 "0"일 경우 지울 수 있는 수를 보장하므로 pop할때 stack pointer를 검사할 필요가 없다. 마지막에 더하는 경우는 stack에 들어있는 모든 값을 더하면 되므로, 0 ~ sp 까지 for문을 돌면 된다. #include int K; int stack[100100]; int sp; int main() { int sum; scanf("%d", &K); for (int i = 0; i < K; i++) { int in; scanf("%d", &in); if (in) stack[sp++] .. 2021. 2. 6.
BOJ 10828 : 스택 A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 알고리즘 문제 전체 링크 www.acmicpc.net/problem/10828  스택 기본 구현 문제이다.push, pop, size, empty, top을 구현해야 한다. 명령의 수가 최대 10000이므로 10000보다 큰 배열을 잡고, index 하나만 추가하면 stack이 완성된다.즉 push할 때는 index = stack pointer = sp를 증가 시키고, pop할 때는 sp를 감소시킨다. 배열에 값을 넣고, sp를 증가시키면 들어오는 순서대로 값을 저장할 수 있다. stack[sp] = input, sp++;→ stack[sp++] = input; 값을 입력하고 sp를 증가시켰기 때문에 바로 이전 값은 sp - 1에 있다... 2021. 2. 5.
반응형