Coursera Algorithm 강의 첫번째 과제. 단순하게 mergesort를 이용해서 순서를 정할때 거꾸로 정리되는 경우의 수를 체크하는 문제였다.mergesort를 쓰게 되면 기존에 O(n^2)의 complexity가 O(nlogn)으로 떨어진다. def readFile(filename, l): with open(filename, "r") as f: for line in f: l.append(int(line)) if f.closed == False: f.close() def sortAndCount(A): mid = len(A) // 2 if len(A) == 1: return A, 0 B, x = sortAndCount(A[:mid]) C, y = sortAndCount(A[mid:]) D, z ..
1 #include 2 #include 3 #include 4 #include 5 6 #define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t)) 7 8 #define MALLOC(ptr, size) \ 9 if(!((ptr) = malloc(size))) { \ 10 fprintf(stderr, "Insufficient memory"); \ 11 exit(EXIT_FAILURE);\ 12 } 13 14 #define CALLOC(ptr, n, size) \ 15 if(!((ptr) = calloc(n, size))){\ 16 fprintf(stderr, "Insufficient memory"); \ 17 exit(EXIT_FAILURE);\ 18 } 19 20 #..
현재 내가 대학원에서 주로 다루고 있는 분야는 Many Core 기반의 Operating System이다. 사실 ManyCore 의 추세는 고성능 보다는 Load Balancing 을 통한 저전력을 추구하는 방향으로 가고 있다. 뭔가 컴퓨터의 발전이 점점 소형화, 저전력화를 추구하면서 어떻게 하면 작은 디바이스에 사람이 원하는 기능을 담느냐 하는게 우리같은 컴퓨터를 연구하는 사람들의 과제가 되기도 하고, 어쩌면 대기업에서도 상품화를 하기 위한 바로 전 단계가 될 수도 있겠다. 그런데 이런게 꼭 주변에 갖춰진 환경에서만 구현되는 것이 아니라, 일상적으로 취미로 다루는 사람들도 이제는 저렴하게 구현해볼 수 있는 시대가 왔고, 그걸 실현해주는 기기중 하나가 바로 아두이노가 아닐까 하는 생각을 해본다. 사실 얼..
머리도 식힐 겸해서 잠깐 해본 게임이다. 플레이타임은 약 3시간정도고, 내가 기억하기론 Humble bundle에서 샀던거 같은데.. 아무튼 도전과제를 노리는 사람한테는 이거만큼 금방 깰 수 있는 게임도 없다. 게임 내용은 매우 간단하다. 위에 나온 빨간색 사각형이 Thomas라는 인격체다. 그 주변에 친구들이 있는데 이들의 도움 없이는 게임을 거의 깨기 힘들다. 그래서 궁극적으로는 살아가는데 있어서 주변에 있는 친구들의 존재는 중요하다, 서로 도우면서 살아가야 한다는 걸 보여주는 일종의 퍼즐 게임이었다. 장르가 약간 플랫포머와 퍼즐이 섞인 형태인데, 생각보다 이미지나 BGM같은게 깔끔해서 꽤나 인상깊게 즐겼다. 한번 궁금한 사람은 플레이 장면을 보면 대충 어떤 느낌인지 알만한 게임이다. 개인적으로는 잠..
연구실에 TopCoder를 준비하는 친구가 있다. 그 친구말로는 알고리즘이야말로 사람간의 실력을 가늠할 수 있는 척도가 되고, 이걸 잘하는 사람이야말로 진정한 고수라고 했었다. 글로 정형화되어 있는 학술적인 내용과는 다르게 알고리즘은 상황에 따라서 자신이 응용해서 적용해야 하며, 그걸 통해서 답을 찾는 케이스다. 그렇기 때문에 한가지 주제라고 해도 답이 하나만 존재하는게 아니라 개개인의 특성에 맞춰진 다양한 답들이 나온다. 나도 이전에는 알고리즘에 대해서 배워야 할 필요성을 느끼고 있었던 터라 시간을 내고 조금씩 읽었던 책이다. 이책을 한마디로 표현하자면 그냥 "문제집"이다. 어떤 알고리즘에 대해서 심도있게 분석하는 것이 아닌, TopCoder에 나왔던 기출문제를 토대로 문제 해결방향과 예시 답안을 제공..
이 책은 그냥 책상에 놓인 걸 보면 전공책같지 않고, 소설책같다. 물론 책 제목만 놓고 보면 "와 멀티코어 CPU네 어렵겠다..." 라고 생각할 법도 하다. 그런데 책 내용 자체가 코드만 책장 한면을 채우고, 딱딱한 화법으로 학술적인 지식만 소개해놓은 일반적인 책과는 다르게 우리가 학부때 배웠던 내용에서 하나씩 다리를 놓으면서 접근하는 느낌이 들었다. 이 책은 멀티코어 시대에서 공부하는 사람이라면 한번쯤 들어봤을 만한 내용들을 깊게는 아니더라도 개론 정도로 잡아주는 책이다. 그래서 컴퓨터 구조론을 들었던 사람이라면 알만한 파이프라인이라던가 Cache 내용으로 시작하면서 멀티코어에서는 어떤식으로 적용되고, 최근에 나오고 있는 GPGPU와 같은 병렬 프로세서에 대한 내용등을 다루고 있다. 무엇보다도 좋았던 ..
그냥 궁금해서 서적사이트에 "멀티코어"라는 키워드로 검색을 해봤다. 딱 25건 나온다. 그중에 논문이 pdf형식으로 변환된 자료를 제외하고 나면 실제로는 6권정도밖에 없다. 뭐 기타적으로 OpenCL이나 OpenMP, CUDA같은 병렬처리용 프로그램으로 키워드를 넣어봐도 책이 그렇게 많지 않다. 사실 요즘 우리가 쓰는 컴퓨터의 코어 갯수는 점점 증가하고 있지만, 실질적으로 이걸 활용한 프로그램을 개발하기 위해서는 외국서적을 참고해야 되는게 현실이다. 그나마 어떤 한 기술에 치중되어 있는 책들이 대부분이기 때문에 선뜻 고르기가 힘들것 같다. 나도 사실 연구실에서 Manycore기반의 시스템을 다뤄보면서 과연 그걸 활용할 수 있을만한 책이 있을지 많이 찾아봤다. 그런 시스템은 학부에 있을 때는 한번도 다뤄보..
사실 내가 Python을 처음 접한건 지난 7월이었다. 그때 내가 들은 수업중에 Coding the matrix란 수업이 있었는데 이 수업의 과제가 보통 Python을 활용한 과제들이 나와서 그때 열심히 공부했던 적이 있다. 그때 써보면서 느낀거지만 Python은 정말 사람이 생각하는대로 구현하기 쉬운 언어라고 생각한다. 어떤 알고리즘도 그냥 Pseudo code로 정의되어 있는 그대로 옮겨 적으면 실행된다. 그걸 일부러 C로 옮기면 갖가지 라이브러리를 불러내고 메모리 접근 관계도 계산해야 되고, 참 복잡해진다. 학교에 있는 어떤 사람은 Python으로 컴파일러도 만들었다고 하니 참.. 신기할 따름이다. 그런데 그 수업 과제중 하나가 Machine Learning과 관련된 과제였는데 주제가 흥미로웠다. ..
참... 요즘 세상은 컴퓨터가 없으면 세상을 살아가기 어려운 시대다. 물론 나도 컴퓨터를 전공하고 그 알지도 못하는 지식을 가지고 한창을 연구실에 싸매고 있긴 하지만 어쩌면 미래에는 내 밥줄이 될 수도 있고, 어쩌면 큰 돈을 벌어줄 수도 있을지도 모른다. 만약 세상에 컴퓨터가 없다는 어떻게 될까? 상상하기가 싫다.. 그만큼 컴퓨터가 우리 세상에 미치는 영향은 엄청나다고 생각한다. 문득 이 컴퓨터는 누가 만들었을까 하는 궁금증을 가져본다. 뭐 일반적으로 알고 있는대로 앨런 튜링이 컴퓨터의 기반이라는 튜링머신을 개발하고, 폰 노이만이 컴퓨터라는 개념을 정립했다고는 말할 수 있는데 사실 그건 컴퓨터를 누가 만들었느냐에 초점을 맞춘거지, 실질적으로 알고 싶은 건 "과연 누가 컴퓨터를 대중화시켰을까?" 에 대한 ..
하루에 한 챕터씩 읽자는 다짐을 하고 처음 완독한 책에 대해서 서평을 간단히 써보고자 한다. 항상 내 서평을 보면 내 경험에 대해서 책의 내용과 비교해보는 형식으로 서술되어 있고, 이 책을 읽게 된 이유도 좀 그런 것과 연관이 많다. 사실 프로그래밍을 하는 사람이라면 누구나 그런 생각을 하겠지만 과연 좋은 코드에 대한 서술을 내릴 수 있는 사람이 있을까? 물론 그 답에 "내가 만든 코드" 라고 답할 수 있으면 그 사람은 정말로 대단한 거겠지만 정말로 프로그래밍 세상에서 완벽이라는 것은 없는 거 같다. 항상 버그가 있고, 어딘가에는 개발자가 생각하지도 못한 것들이 존재한다. 그래서 누구나 좋은 코드에 대한 답을 찾으려 노력한다. 이 책도 그런 내용과 마찬가지로 가독성이라는 특정점을 바탕으로 좋은 코드에 대..
- Total
- Today
- Yesterday
- PowerPoint
- reward
- Expression Blend 4
- arduino
- Distribution
- Kinect
- Pipeline
- Off-policy
- RL
- 강화학습
- ColorStream
- Kinect SDK
- Offline RL
- processing
- 딥러닝
- DepthStream
- Variance
- 한빛미디어
- End-To-End
- Policy Gradient
- Gan
- 파이썬
- Python
- SketchFlow
- Kinect for windows
- windows 8
- TensorFlow Lite
- bias
- Windows Phone 7
- dynamic programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |