목록분류 전체보기 (198)
포도가게의 개발일지
#include #include typedef struct Node{ int data; struct Node *next; }Node; typedef struct Info{ int count; struct Node *head; struct Node *tail; }Info; void rearadd1(Info *data, int value); void rearadd2(Node *head , int value); void finding(Node *head, int target); void delete(Node *head, int target); void insert(Node *head, int index, int value); void add_first(Node *head, int value); int main..
struct vs class 의 차이는 - 접근지시제어자의 사용 가능 여부의 차이가 있다 - class에서는 아래 세가지의 접근지시제어자를 가질 수 있지만 struct에는 없다 public : 어디서든 접근 가능 protected : 상속관계에서 유도 클래스에서만 접근 가능 private : 클래스 내에서만 접근 가능 struct vs typedef struct의 차이? 1. typedef struct typedef struct 구조체이름{ 자료형 멤버이름; 자료형 데이터; }구조체 별칭 typedef struct Person{ char name[20]; int age; char address[100]; }Person; ##구조체 이름과 동일하게 별칭을 쓸 수 있음 int main(){ Person p1..
#include #include int main(void){ int a, *p_a; float b, *p_b; p_a = malloc(sizeof(int)); p_b = malloc(sizeof(float)); *p_a = 10; *p_b = 3.14; printf("p_a address %p\n", &p_a); printf("malloc int %p\n", p_a); printf("p_b address %p\n", &p_b); printf("malloc float %p\n", p_b); free(p_a); free(p_b); }
이번주차는 DP(dynamic programing)과 그리디 알고리즘 문제를 푸는 주차였다. 그리고 정말 어려웠다...ㅋㅋㅋㅋㅋ 주차가 끝나가는 시점에서 상태는 개념은 이해 했지만 문제에 적용하는게 도저히 어렵다 정말로.. 다른문제를 풀어보았는데 이게 점화식을 찾는거다 보니 새로운 점화식이 나오고 그걸 찾지 못하면 하드 코딩하게된다.. 그리디 알고리즘은 뭔가 iq테스트를 하는 느낌이지만 그래도 dp에 비하면 아직까지의 난이도로는 그리디알고리즘이 좀 더 나은 것 같다. 이번주차가 알고리즘 마지막 주차인데 동기분들이랑 얘기해서 아마 스터디를 진행 할 것 같다. 결국 코테를 볼려면 알고리즘을 놓을 수 없으니까 뭐.. 열심히 해야겠지..
https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 문제 : 주어진 수의 리스트중 + - 연산자를 활용하여 결과값이 나올 수 있는 경우의 수를 찾으시오 접근법 - 처음에는 두가지 경로로 나뉘는 경우의수여서 bfs로 접근할려 했지만 메모리 제한이 128mb라 dp로 접근하게 되었다. - dp 매트릭스는 가로축은 점수 세로축은 몇번째 값을 더하는지를 의미 한다. - dp[i][j+arr[i]] += dp[i-1][j]의 의미는 전 연산의 경우의..
다익스트라 알고리즘 : 탐욕법 - 단일 정점에서 모든 다른 정점으로의 최단 경로 구하기 - 최소비용 신장트리 mst의 프림 알고리즘과 유사 - 차이점은 프림 알고리즘은 V-Y집합과 인접한 노드를 넣어준다면 다익스트라는 출발점 v1과 가장 Y의집합을 touch하고 가장 인접한 노드를 넣어준다. 종료 조건문은 if Y == V: 같으면 탐색을 완료했다고 표현 옆에 그림의 경로는 F = {} v1 -> v5 , 1 (v1->)v5 -> v4 , 2 v1 -> v3, 4 (v1->v5->)v4 -> v2, 5 정보가 저장된다. 표를 보면 알 수 있듯이 v1 -> v5로의 경로가 입력되면서 5번은 -1로 방문체크가 완료되며 v1 -> v4로 갈수있는 비용이 6 -> 2로 바뀌게 된다 이건 v1->v5->v4로..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 : 선발할 수 있는 신입사원의 최대 인원수 접근법 - 최대 최소문제이며 사이클이 돌지않음 - 그리디로 접근하였다 - subprob의 최적의 해가 total prob의 최적의 해와 일치 한다. - matrix를 정렬 하였을때 a,b중 하나라도 1등인애는 맨앞에 가게 되므로 반드시 신입사원 으로 뽑힌다 - 그리고 1등 이후의 등수들은 b의 등수가 앞선애보다 낮은 등수이기만 ..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 : 가장 많이 회의실을 쓸 수 있도록 배치 접근법 - 그리디 알고리즘 문제였다 - 그리디 알고리즘은 subprob에서 최적의 해가 전체 prob에서 최적의 해가 되는 것을 증명하는 문제이다 - 그래서 저는 시작 시간, 끝나느 시간, 시간의 차이로 매트릭스에 저장 후 - 우선 정렬을 끝나는 시간으로 순서대로 정렬 하였다. 힌트가 큰 도움이 됬다. -> 다음 정렬은 스타트 시간을 순서대로 정렬한다. - 그리디 알고리즘은 subprob에서 최적의 해가 전체 prob에 최적의 해가 부정되는 순간 문제자체가 성립 될..