알고리즘
[BOJ] 2164 카드 2
문제 링크 https://www.acmicpc.net/problem/2164 모든 알고리즘 문제는 C++로 구현되어 있습니다. 큐를 사용해서 front(), pop(), push() 연산을 사용하면 되는 간단한 문제였다. c++의 STL queue를 사용할 수도 있었지만, 큐를 만드는 법을 다시 한 번 기억할 겸 직접 MyQueue 클래스를 만들었다. struct Node { int val; Node* next; Node* prev; }; class Myqueue { private: Node* head; Node* tail; int size; public: Myqueue() : size(0) { head = tail = nullptr; } void push(int val) { Node* newNode =..
11/22 블럭 없애기
삼성 코드그라운드에서 제공하는 알고리즘에 관한 개인적인 풀이를 정리했습니다. 아래 사이트에서 직접 풀어보실 수 있습니다. https://www.codeground.org/practice 모든 알고리즘 문제는 C++로 구현되어 있습니다. 이 문제를 풀기 위해 단위시간 별로 외부 블록을 깎아나가는 형식을 사용한다고 했을 때, 다음과 같은 코드를 생각해 볼 수 있다. #include using namespace std; int Answer; // 블럭 없애기(시간 초과) int main(int argc, char** argv) { int T, test_case; cin >> T; for (test_case = 0; test_case < T; test_case++) { Answer = 0; int i, n, b..
11/19 좋은 수
삼성 코드그라운드에서 제공하는 알고리즘에 관한 개인적인 풀이를 정리했습니다. 아래 사이트에서 직접 풀어보실 수 있습니다. https://www.codeground.org/practice 모든 알고리즘 문제는 C++로 구현되어 있습니다. 처음 이 문제를 봤을 때는 배열을 순회하면서 현재 수 보다 앞에 있는 수들을 재귀 호출을 통해 더해보면서 좋은 수를 판별하는 방식을 생각했다. #include #include using namespace std; int Answer, arr[5000], chk[200000]; //좋은 수(첫 코드, 시간 초과) void getGoodNum(int objIdx, int prev, int idx, int sum) { if (chk[objIdx]) return; if (idx ..