본문 바로가기
반응형

컴퓨터 사이언스65

Codeforces #574 (div 2) 후기 http://codeforces.com/contest/1195 불러오는 중입니다... A. 최대 [n/2]개의 set이 있고 각 set은 drink가 2개씩 있다는 내용인데 문제 내용 자체는 이해하기 어려웠지만, 논리자체는 쉬웠다. 일단 모든 숫자의 갯수를 count한 뒤 count값을 2로 나눈 몫을 다 더해주고, 이게 n/2과 다르면 n/2과의 차만큼 drink를 더 선택할 수 있어서 그걸 더해주면 끝이다. B. 지난번 수학문제(방정식 전개하는거)랑 비슷한 문제 양식이다. 나는 그냥 put하는 횟수가 y번이면 y(y+1)/2개의 캔디가 들어가고, eat을 x번 하면 k개의 캔디가 남아있다 했으니 y(y+1)/2 - x = k(x + y = n) 이 식을 y에 대해서 풀어준 뒤(x로 풀면 복잡) n-y.. 2019. 7. 18.
[알고리즘 공부] 트리의 구현과 순회 트리 계층적 관계를 표현하는 자료구조. 특정한 조건을 지키도록 구성한 트리를 이용하면 배열이나 리스트를 사용하는 것보다 같은 작업도 더 빠르게 할 수 있다. 트리의 용어 중 꼭 알아야 하는 내용 리프(Leaf) 노드 : 자식이 하나도 없는, 즉 트리에서 가장 하단에 위치하는 노드들을 의미한다. BST에서 리프노드의 수는 전체 노드가 2^k개면 2^(k-1)이다. 트리의 깊이(Depth) : 루트에서 어떤 노드에 도달하기 위해 거쳐야 하는 간선의 수를 깊이라 함. 트리의 높이(Height)는 가장 깊숙히 있는 노드의 깊이를 의미한다. 트리의 재귀적 속성 : 한 노드와 그의 자손들을 모으면 그들도 하나의 트리가 된다.(Subtree) 즉, 모든 트리는 루트와 루트 밑에 있는 subtree들의 집합이다. 트리.. 2019. 7. 6.
[Linking] Library interpositioning 공유 라이브러리 함수를 호출하려고 할 때 중간에 가로채면서(!) 내가 만든 다른 함수를 실행하게 하는 방법이다. Interpositioning 은 Compile time / Link time / Load & run time에서 모두 가능하다. Interpositioning을 하면 보안과 monitoring, profiling에 좋다고 한다. 보안은 왜 그런 지 모르겠지만, 함수 프로파일링에는 공감 : 함수가 몇 번 호출되는 지, malloc tracing하는 데 도움이 된다. 1) Compile time에서의 interpositioning 전처리기를 이용한 interpositioning으로 생각하면 된다. 헤더 내에 #define malloc(size) mymalloc(size) 와 같이 선언을 해버리면.. 2019. 5. 1.
[c++] 백준 #1992 쿼드트리 https://www.acmicpc.net/problem/1992 이것 또한 분할정복 문제이다. 백준 1780 종이의 개수 문제를 풀었다면 아주 쉽게 한문제를 먹을 수 있다.주어진 0, 1로만 이루어진 행렬을 4등분하였을 때 똑같은 숫자(all 0 or all 1)로만 이루어지지 않았다면 4등분하는 식으로 진행된다.트리의 괄호는 4등분이 시작할 때마다 열어주고, 끝날 때 닫아주면 끝이다. 문제의 행렬이 공백없이 주어지니 getline을 쓰는 것을 잊지 말아야한다.(cin.ignore()은 덤!) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636.. 2018. 11. 11.
반응형