# 출처 : https://www.acmicpc.net/problem/1920 정렬되어 저장해주기 때문에 따로 정렬을 할 필요가 없는 자료구조 set을 사용하여 풀었다. # 풀이12345678910111213141516171819202122#include #include #include int N, M, num;std::set base;int main(){ std::ios::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(NULL); std::cin >> N; for (int i = 0; i > num; base.insert(num); } std::cin >> M; for (int i = 0; i > num; std::cout
# 출처 : https://www.acmicpc.net/problem/4963 처음엔 BFS를 써서 풀고자 큐를 사용했으나 뭔가 원하는 방향으로 진행이 되지 않길래스택을 써서 풀었다. 그렇게 풀고 다른 사람들의 답을 보니 재귀를 사용해서 훨씬 간단하게 풀었어서재귀 연습겸 재귀로도 풀어보았다. # 스택 사용12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include #include #include using namespace std; int C, R, cnt;int map[51..
# 출처 : https://www.acmicpc.net/problem/1003 처음에 단순하게 count 변수 두개를 선언해서 0과 1을 호출하는 횟수를 셌는데 시간초과가 났다.따라서 i번째 수의 0과 1의 호출 횟수는 i-1번째의 0과 1, i-2번째의 0과 1 각각의 횟수의 합과 같은 규칙을 찾아처음부터 배열에 담아두는 형식으로 풀었다. # 풀이 1234567891011121314151617181920212223242526272829#include using namespace std; int T, N;int DP[42][2]; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); DP[0][0] = 1; DP[0][1] = 0..
# 출처 : https://www.acmicpc.net/problem/2579 이전 칸에서 현재 칸에 도달한 경우를 나눠 계산해 주면 된다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include #include #include using namespace std; int N; // 각 칸에 할당된 점수vector stairVal; // 현재까지 오는데 계산된 총 점수// 0 : 이전 칸에서 2칸 건너 현재 칸에 도달// 1 : 이전 칸에서 1칸 건너 현재 칸에 도달int stackedVal[300][2]; int main(){ ios::sync_with_stdio(false);..