1~n 까지의 수를 스택에 넣을 때 push , pop 을 이용해 주어진 배열을 만들수 있는지 알아보는게 문제다 1부터 차례로 넣으므로만약 스택이 비었거나 또는 top이 현재보는 수와 같지 않다면현재보는 수 까지 스택에 넣으면 된다 근데 만약 이 때 넣는수가 n보다 커진다면 만들수 없는 배열이 된다!!이것만 잘 처리해준다면 쉽게 풀 수 있다..! 소스코드12345678910111213141516171819202122232425262728293031323334#include #include #include #include using namespace std;int n;int arr[100010];stack st;vector ans; int main() { int it = 1; scanf(" %d", &n)..
차집합의 합집합 수를 구하는 문제이다set을 이용하면 쉽게 풀 수 있다 1. set을 하나 만들고 A의 원소를 다 넣는다2. B의원소를 확인하며 이미 set에 있다면 지우고 없다면 넣는다3. set의 크기가 곧 답이다! 소스코드123456789101112131415161718#include #include using namespace std;set a;int n, m;int main() { scanf(" %d %d", &n, &m); for (int i = 0; i
트리의 지름 구하는법을 들어만봤는데 이번에 처음으로 구해봤다weeklyps.com을 보며 공부했다! 2가지 방법이 있는데 그리디를 이용하는게 쉽길래 그리디 이용 ㅎㅎ 방법은 간단한다 1. 임의의 정점 a에서 가장 먼~~ 정점 b를 찾는다2. 그 후 찾은 정점 b에서 가장 먼~~ 정점 c를 찾는다3. 그럼 b에서 c까지의 거리가 트리의 지름이 된다 증명은 복잡하므로 생략 소스코드12345678910111213141516171819202122232425262728293031323334353637383940#include #include #include #include using namespace std;vector Graph;int n, d[10010];bool check[10010]; int dfs(int..