그리디 알고리즘 (탐욕법) 현재 상황에서 가장 좋은 것만 고르는 방법 기준에 따라 좋은 것을 선택함 -> 기준대로 정렬 알고리즘을 이용해 해결 가능 그리디 알고리즘으로 문제에 접근했을 때 정답을 얻을 수 있다고 보장되었을 경우 효과적임 -> 최소한의 아이디어가 정당한지 검토해야 정답 도출 가능함 반복되는 수열을 파악해야 함 풀 때 생각할 점 문제의 규칙(수열) 찾기 어떻게 정렬할지 생각하기 아이디어가 맞는지 검토하기 백준 문제 11047번 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int coin[11]; int main() { int N, K; int i, t; int sum = 0; s..
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int INT_MAX_NUM = 1000000007; int k[501]; //페이지 값 int dp[501][501]; //0~n까지 최소 값 int sum[501]; //0~n까지 페이지 더한 값 int main() { int T; int K; int i,j; scanf("%d", &T); while(T--){ scanf("%d", &K); sum[0] = 0; for (i = 1; i
c++의 STL에 있는 스택 컨테이너를 이용해서 풀었다. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main() { int N; int i, num=0, sum=0; stack s; scanf("%d", &N); for (i = 0; i < N; i++) { scanf("%d", &num); if (num == 0) { s.pop(); } else { s.push(num); } } while (!s.empty()) { sum += s.top(); s.pop(); } printf("%d", sum); return 0; } https://www.acmicpc.net/problem/10773
스택을 구현하는 문제였다. 오랜만에 구현 문제를 풀면 가끔 헷갈리는 건데 stack 구조체를 인자로 넘겨줄 때 main에서 큰 stack s를 주소로 넘겨주고 포인터로 받아야 한다. 아니면 함수의 반환형을 stack으로 해서 넘겨줘야 함 (이건 좀 번거로운듯..?) #define _CRT_SECURE_NO_WARNINGS #include #include #include #include typedef struct Node { Node *next; //다음 노드 주소 저장할 포인터 int data; } node; typedef struct Stack { node* top; int count=0; }stack; void push(int x, stack* s); int pop(stack* s); int empt..
사용자 입력 사용자 입력은 Input.Get~로 받을 수 있다. Get~ : 키를 누를 때 Get~Down: 키를 누르고 있을 때 Get~Up: 키를 눌렀다가 뗐을 때 1. 키보드 입력 Input.GetKey/KeyDown/KeyUp(KeyCode.키이름) 2. 마우스 입력 Input.GetMouseButton/GetMouseButtonDown/GetMouseButtonUp(매개변수) 매개변수가 0 : 마우스 왼쪽 버튼, 1 : 마우스 오른쪽 버튼 3. 버튼 입력 오브젝트 이동 먼저 자신의 컴포넌트를 GetComponent()를 이용해서 가져와야 한다. Rigidbody rigid; rigid = GetComponent(); 1. 힘으로 밀어서 움직이기 Vector의 방향으로 ForceMode에서 선택된..