PS
-
[백준 10799] 쇠막대기 (cpp, stack)알고리즘/백준 2021. 12. 19. 16:50
🚀 들어가며... stack에 '('인 경우의 인덱스를 저장하여 문제를 해결 할 수 있다. 🔗 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 📑 내용 case 1 : 쇠막대기가 추가되는 경우 "("이 입력되어 쇠막대기 추가되는 경우이다. (stack.push(i)) case 2 : 레이저인 경우 ")"이 입력되었으며, 이전의 입력이 "("인 경우는 레이저이다 ( ans += stack.size()) case 3 : 레이저가 아닌 경우 ")"이 입력..
-
[백준 17413] 단어 뒤집기 2알고리즘/백준 2021. 12. 19. 16:30
🚀 들어가며... 스택을 사용하여 문제를 풀이하였다. 모든 문자열을 뒤집는다. ("" 사이에 존재하는 문자열은 제외) stack : 뒤집을 문자가 들어갈 공간 ans : 결과 문자열 🔗 문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; // 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), ..
-
[백준 1158] 요세푸스 문제 (cpp, queue)알고리즘/백준 2021. 12. 19. 04:08
🚀 들어가며... queue를 사용하였다. 입력 : 7 3 이면 -> 1 2 3 (3출력) 4 5 6 (6출력) 7 1 2 (2출력) 하는 문제이다 🔗 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 📑 내용 처음에 큐에 모든 수를 넣고. queue의 front를 조건 만족 시 출력해준다. 이때 선형 구조를 만족 시키기 위해서, front를 출력하지 않을 시, 다시 push 해준다. 아래가 핵심 부분이다. // 항상 출력 대상, 검사의 대상은 queue의 front이다. while(!q.empty()){ for(int i=0; i..
-
[백준 10845] 큐 (cpp, vector)알고리즘/백준 2021. 12. 19. 03:55
🚀 들어가며... C++ STL Vector를 사용하여 풀이한다. (vector의 특성 상, front와 back 접근이 자유로워 편리하다) 단순 구현 문제이다. 🔗 문제 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; int main(void){ ios::sync_with_stdio(false); cin.tie(NULL); cou..
-
[백준 1406] 에디터 (cpp, stack)알고리즘/백준 2021. 12. 19. 03:51
🚀 들어가며... 스택을 사용해서 풀 수 있는 문제이다. 커서를 기준으로, 앞과 뒤로 스택을 두개를 준다. 스택1 : 커서 앞 스택2 : 커서 뒤 명령어에 맞추어서 스택에 할당한다. 마지막으로는 스택2에 모두 담아서, 출력시켜준다. 🔗 문제 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; int main(){ string str; stack st1;..
-
[백준 1874] 스택 수열 (cpp, stack)알고리즘/백준 2021. 12. 19. 03:46
🚀 들어가며... 1부터 시작하여, push의 경우 "+"를 출력하고 pop의 경우 "-"를 출력하는 문제이다. 스택에 push하는 순서는 반드시 오름차순을 지켜야한다. 🔗 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; int main(void){ stack ..