본문 바로가기

Computer Science304

중고차 솔루션 1. 링크드 리스트2. 나누어서 저장하기3. 탐색에 용이함4. 적절한 숫자를 찾기5. 비트연산자 활용하기 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include #include #include struct CAR{ int age; // 0 ~ 19 int passenger; // 2 ~ 12 int engine; // 1000 ~ 4999 int price; // 10000 ~ 39999}; extern void buy(CAR car); extern.. 2019. 3. 8.
인터프리터 해적 1. 인터프리터를 만들어라. 인터프리터는 int run_code(unsigned char* code, int size, int arg) 로 구현된다. run_code 는 arg 값을 R0 (0 번 레지스터) 에 저장 한 뒤 unsigned char 배열로 된 code 를 실행하고 R0 의 값을 반환한다. 배열의 각 인자(1 개의 unsigned char)은 하나의 명령어에 대응된다. 레지스터와 스택의 범위는 int 범위 이다. 코드는 아래와 같이 정의된다. 총 8 비트 중 상위 3 비트는 아래와 같이 명령어를 나타낸다. SET 000 ADD 001 SUB 010 MUL 011 POP 100 PUSH 101 GOTO 110 LABEL 111 SET 은 R0 에 하위 5 비트의 값을 저장한다. ex) 000.. 2019. 3. 8.
고속도로 건설 2 넌 is 뭔들 1. MST 2. 도로 건설3. 모든 정점이 이어지는데, 가중치의 합이 최소인 것4. 프림, 크루스칼5. 오케이 유니온 파인드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include #define MAX 10//#define MAX 5000001 typedef struct { int u, v, w;} EDGE;EDGE G[MAX]; int P[MAX]; /* Parent */int R[MAX]; /* Rank */ #define Swap(a, b) { EDGE t = a; a = b; b = t; } void QSort(int l, int r) {.. 2019. 3. 6.
Inversion Counting 삼슝 1. L,M 구간에서 발생하는 Inverse Counting2 M+1, R 구간에서 발생하는 Inverse Counting3. [L,M] 에서 i가 선택되고, M+1, R에서 j가 선택되는 Inverse Counting4. Counting 으로 풀이하는 것도 굉장하군.... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#include #pragma warning(disable : 4996) //#define n_max 100001#define n_max 10 int n; .. 2019. 3. 6.
Pole 아메리칸 조식 1. 디피 문제이므로 문제 유형 파악2. 높이가 1,2,3,4,...,엔 인 막대 앤개가 일렬로 배치되어 있음3. 막대의 개수 앤과 왼쪽에서 봤을 때 보이는 막대의 개수 엘, 오른쪽에서 봤을 때 보이는 막대의 개수 알이 주어졌을 떄4. 이러한 결과를 만드는 배치가 몇 가지가 가능한지 구하는 프로그램을 작성하라5. 가장 왼쪽에 있는 경우 1가지6. 중간에 껴 있는 경우 엔-2 가지7. 가장 오른쪽에 있는 경우 1가지8. 3중 포문을 돌려서 파악하도록 함 1234567891011121314151617181920212223#include const int MAXN = 20;long long DT[MAXN + 1][MAXN + 1][MAXN + 1];int tc, T, N, L, R; int main(void).. 2019. 3. 5.
파이의 합 아메리칸 조식 1. 수식을 보고2. 그대로 구현 하는 능력3. 오케이4. 파이를 어떻게 풀이 할 것인가5. 소수를 구하는 에라토스테네스의 체 12345678910111213141516171819202122232425262728293031323334#include const int MAXN = 35;int PHI[MAXN + 1];long long PHI_SUM[MAXN + 1];int tc, T, a, b; int main(void){ freopen("input.txt", "r", stdin); PHI[1] = 1, PHI_SUM[1] = 1; for (int i = 2; i 2019. 3. 5.
줄 세우기 아메리칸 조식 1. 위상 정렬2. 링크드 리스트3. 큐로 풀이 가능함4. 디그리 0인가?5. 아하 그냥 이렇게 풀이 한 것 이구나 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include struct NODE{ int n; NODE* next;}; const int MAXN = 50000, MAXM = 150000;NODE* list[MAXN + 1]; // 각 시작점을 저장함NODE nPool[MAXM]; // 전체 간선을 저장함int CHK[MAXN + 1]; // 들어오는 것의 갯수를 저장함int QUEUE[MAXN];int wp, rp;int tc, T, N, M, a,.. 2019. 3. 5.
compare 함수 사용 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include #include using namespace std; #include #define MAXN 10000typedef struct Data { int a, b; bool operator 2019. 2. 25.
롤러코스터 1. 롤러코스터2. 머지3. 관리4. 인덱스 관리5. 인덱스 따라 가도록 관리하기6. 그리고 main, user 어떻게 흘러가는지 파악하기 123456789101112131415161718192021222324252627282930313233343536373839404142#include #include using namespace std; const int MAXN = 200000; int CalcFinalSpeed(int N, int *a, int *b, int *p) { int v = 1; for (int i = 0; i 2019. 2. 25.