‡ CODING TEST STUDY ‡/º 백준 134

[백준 1874번 C++] 스택 수열

1874번: 스택 수열 (acmicpc.net) 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() { stack s; vector v; int n, m; int cnt=1; cin >> n; for(int i=0; i> m; while(cnt

[백준 1406번 C++] 에디터

1406번: 에디터 (acmicpc.net) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 중간 삽입/삭제가 일어나기 때문에 연결 리스트로 한번 풀어봄 #include #include #include using namespace std; int main() { string s; int m; char op, add; list l; cin >> s >> m; for(int i=0; i op; switch(op){ case 'L': if(cur!=l.begin()) cur--; break; case 'D': if(..

[백준 1935번 C++] 후위 표기식2

1935번: 후위 표기식2 (acmicpc.net) 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 후위 표기식에 대해 알아보자,, 후위표기식 (Postfix expression) 계산법 (tistory.com) 후위표기식 (Postfix expression) 계산법 수학에서 사용되는 사칙연산에는 여러가지 규칙이 있다. 예를들어 곱하기와 나누기는 다른 연산보다 우선시 되어 하고, 괄호가 있는 경우에는 모든 연산의 최우선이 된다. 이러한 규칙들로 인 siyoon210.tistory.com 후위표기식 ..

[백준 10773번 C++] 제로

10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 뚱땅뚱땅 비교적(?) 빠르게 써내려간 코드 근데 stack에는 제대로 저장이 다 되는 데 마지막 for문에서 sum을 구하려는 데 스택에 저장된 원소들의 합만 이상하게 나옴 문제의 코드 #include #include #include using namespace std; int main() { stack s; int k, n, sum=0; cin >> k; for(int i=0; i> ..

[백준 9012번 C++] 괄호

9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 괄호 문제는 스택의 가장 대표적인 유형 문제의 나의 코드 첫번째 input은 잘 되는 데, 두번째부터는 input이 이상하게 들어가짐 #include #include #include using namespace std; int main() { int n; string input; stack s; cin >> n; for(int i=0; i> input; while( !s.empty() ) ..

[백준 10828번 C++] 스택

10828번: 스택 (acmicpc.net) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 먼저 스택을 불러와주는 헤더파일을 불러와줌 [C++][STL] Stack 기본 사용법 및 예제 (tistory.com) [C++][STL] Stack 기본 사용법 및 예제 인트로 오늘은 C++의 STL중 하나인 Stack(스택) 기본 함수에 대해서 알아보도록 하겠습니다. 목차 1. 스택(Stack)이란? 2. 스택 헤더 파일 3. 스택 기본 함수 1. 스택이란? 스택(Stack)은 대표적인 LIFO(L..

[백준 17087번 C++] 숨바꼭질 6

17087번: 숨바꼭질 6 (acmicpc.net) 17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이 www.acmicpc.net 동생들의 위치를 vector a에 넣어두고, 수빈과의 위치 차이를 vector dif에 넣었다. 따라서 vector dif에는 수빈이 동생을 찾으러 걸어야하는 걸음 수만이 저장되므로 vector dif에 저장된 수들의 최대 공약수를 찾으면 D의 최댓값을 구할 수 있다. #include #include #include using namespace std; int main(){ int..

[백준 10974번 C++] 모든 순열

10974번: 모든 순열 (acmicpc.net) 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 백트랙킹 DFS로 푸는 방법 [C++][백준 10974]모든 순열 (tistory.com) [C++][백준 10974]모든 순열 [문제] 10974번: 모든 순열 (acmicpc.net) 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net [문제 풀이] 백트래킹을 이 yoon-1212.tistory.com 2. 의 next_permunation을 이용해서 순열 구하기 [백준 #10974] 모든 순열..

[백준 2981번 C++] 검문

2981번: 검문 (acmicpc.net) 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 벡터 정렬하는 법 [C++] vector (벡터) 정렬, 배열 정렬하기 :: Feel Coding (tistory.com) [C++] vector (벡터) 정렬, 배열 정렬하기 벡터든 배열이든 정렬을 하려면 라이브러리의 sort() 함수를 쓰면 된다. 따라서 헤더파일을 포함해줘야 한다. sort() 함수의 첫번째 두번째 매개변수는 iterator, 즉 포인터이다. sort - C++ Reference custom breakcoding...

[백준 15650번 C++] N과 M (2)

15650번: N과 M (2) (acmicpc.net) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 내가 처음 작성한 문제의 코드는 #include #include using namespace std; int m; vector v; int a[8]; void dfs(int start, int depth){ if(depth == m){ for(int i=0; i