문제 출처 : https://www.acmicpc.net/problem/1158 풀이과정 1부터 n까지의 정수를 큐를 활용하여 저장한 후에 m번째 사람의 제거를 위해 반복문을 돌린다.m번째가 아닌 사람들은 front에서 나간 후 다시 back으로 넣어준다.큐를 활용하면 쉬운 문제였다. 소스코드 12345678910111213141516171819202122232425262728293031323334#include #include using namespace std; int main() { int n, m; cin.sync_with_stdio(false); cin >> n >> m; queue q; for (int i = 1; i
문제 출처 : https://www.acmicpc.net/problem/1894 풀이과정 스택을 활용하는 문제이다. 처음에 문제를 읽었을 때 무슨 소리인지 몰라서 당황했다.이 문제의 핵심은 1~n 까지는 무조건 스택에 들어간다는 것과 pop하는 조건을 잘 찾는 점인거 같다.A를 1~n까지 저장하는 스택이라 하고, B를 입력된 수열을 저장하는 배열이라고 가정할 경우 A.pop()을 하는 조건은 다음과 같다.1. A.top()과 B[i] 가 같을 경우 A.pop()을 통하여 입력된 수열을 만든다.2. 이 과정은 스택이 비어있다면 진행하지 않는다.소스코드를 보고 이해하는 게 더 빠를 거 같다. 소스코드 123456789101112131415161718192021222324252627282930313233343..
문제 출처 : https://www.acmicpc.net/problem/1406 풀이과정 스택을 사용하는 문제이지만 문제를 보고나서 스택을 사용하지 않고도 해결할 수 있을 것 같다는 생각이 들었다.그래서 스택을 사용하지 않고 string만을 이용해서 해결해봤다.입력은 문자열로 받았으며 N번만큼 명령어를 입력받았다.계속해서 스택을 이용해서도 문제를 풀어봐야겠다.처음 소스코드 이후로 커서 기준 왼쪽, 오른쪽 스택을 이용해서 풀이를 해봤다.그리고 스택으로 풀고나니 문자열도 왼쪽 오른쪽으로 나누어서 풀어보면 어떨까 싶어서 이 문제는 총 3가지의 방법으로 풀이를 해봤다스택을 사용한 방법이 가장 속도가 빨랐다. 소스코드 12345678910111213141516171819202122232425262728293031..