분류 전체보기 261

프로그래머스 - 해쉬

완주하지 못한 선수 참가한 선수보다 완주한 선수가 단 한명 적으니까, 그 단 한명을 찾으라는 말 같다. 음 그리고 크기가 10만이라서 O(N)만에 찾는 편이 좋겠다. 또는 O(NlogN) 음 근데 방법을 모르겠다. 그냥 생각나는 방법은 정렬하고 앞에서부터 두 배열이 같은지 확인하다가 다른 놈이 정답 같다. 일단 해보겠다. 음 내 방식이 성공했다. 그런데 해쉬를 사용하는게 문제인데 나는 정렬을 사용했으니 다른 코드들도 좀 분석해 보겠다. 방법2 c++ unrodered_map 사용 나는 주로 map을 사용했는데 이게 왠지 더 편해보인다. 음 사실 둘이 연산, 문법 규칙은 동일한거 같다. 성능이 다른듯. 밑에서 보니 RBT(레드 블랙 트리?) 를 사용한게 map , unordered_map은 해쉬 구조인듯 ..

인터넷 프로그래밍 크롤링 과제3 (부분 완성)

구글 검색을 이용한 넷플릭스 동영상 평가 시스템 프로젝트 제목: 구글 검색을 이용한 넷플릭스 동영상 평가 시스템 (GNE google neflix evaluation system) I. 개발 목표 넷플릭스를 이용하는 시청자들에게 요즘은 볼 영상이 없다는 말을 자주 들었습니다. 그 이유는 넷플릭스 동영상은 정량적인 평가 기준이 없습니다. 이는 넷플릭스 자체에서 동영상의 순위를 매기는 방식이 아닌 머신러닝을 활용해 개인별로 적합한 영상을 추천해주는 방식이라서 정량적으로 얼마나 인기가 많은 영상인지는 광고에서 자주 나오는 영상을 통해서만 알 수 있거나, 검색을 해서 개별 블로그의 글들을 확인해야 합니다. 그래서 전 블로그에서 많이 추천해주는 리뷰가 작성된 영상이 재밌고 인가가 높은 영상이라는 점에 착안해 구글..

Cuda gpu 프로그래밍 공유 메모리 이용한 행렬의 곱셈

음 쿠다에서 공유 메모리랑 글로벌 메모리를 사용할 수 있는데 공유 메모리를 사용하는 편이 온칩으로 훨씬 빠르므로 공유 메모리를 사용해 보겠다. 공유 메모리는 각 블록 안에 있다. 그리드 > 블록 > 스레드 순으로 포함 관계를 갖는다. 그러기 위해서 수업에서는 공유 메모리의 메모리 뱅크를 잘 고려해서 각 스레드가 서로 다른 메모리 뱅크들에 접근하면 뱅크 콘플릭트를 피해서 빠르게 행렬 곱셈을 할 수 있다는 소리. 지피유의 글로벌 메모리에 접근하는 속도가 공유 메모리에 접근하는 속도 보다 100배는 느리다고 한다. 내가 해보려는건 공유 메모리를 사용했을때랑 글로벌 메모리 사용했을때 차이 그리고 cpu에서 했을때 3경우를 비교해 보자. 지금 공유 메모리를 사용하는 코드에서 계산하는 방법은 음 잘 몰라서 이 글을..

인터넷 프로그래밍 크롤링 과제 2편 (php에서 잘 안된 내용이 무엇인지 해결 정리.)

음 내가 원했던 것은 https://www.google.com/search?q=기묘한+이야기 이런 식으로 q="원하는 제목"을 추가해서 크롤링하려고 했다. 그래서 "https://www.google.com/search?q=기묘한+이야기" 이걸 내가 복사해서 php 에서 file_get_html()의 인자로 넣으면 잘 작동했다. 마찬가지로 주소를 html 파일에서 post로 php로 넘겨서 받은 값을 (위와 동일 한) file_get_html()의 인자로 넣으면 잘 작동했다. 단 !... html 파일에서 "기묘한 이야기" 이렇게 받고 이 공백을 + 로 바꾸어서 "https://www.google.com/search?=" 이 부분에 concat 시키면 안된다.... 그래서 내가 원인을 몇가지 생각해 보았었..

인터넷 프로그래밍 크롤링 과제1 (php로 인해 헤매는 내용;;)

음 자유 주제로 서버 클라이언트 구조로 크롤링해서 프로젝트를 진행하라 하셨다... 몇일동안 고민해본 결과 평소에 생각하던 아이디어까지 일단 적어보면 1. 중간, 기말 고사 문제 구글에서 찾아서 보여주기 - 단원,키워드 검색시 문제들을 보여주는 것이다. 2. 넷플릭스 볼만한것 블로그들 추천 종합해서 추천 해주기 - 구글에 넷플릭스 추천 목록 찾아서 꽤나 추천율이 높은 것을 리스트로 추천해주는 것이다. 아니면 제목 입력하면 구글 블로그들 내가 종합해서 추천 점수 매겨주는거임. 후자로 할듯 일단은 전자는 내가 넷플릭스 영화 목록을 못찾았다. 그래서 영화나 드라마 제목 입력하면 구글에 내가 대신 검색해서 블로그들이 얼마나 추천해주는지 나만의 방식으로 평가해주는것임 !ㅎㅎ. 3. 아마존 블랙 프라이 데이 할인 적..

면접 대비 운영체제 공부 (abraham 4장 thread)

현대의 거의 모든 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 목표 다중 스레드 컴퓨터 시스템의 기초를 이루는 CPU의 기본 단위인 스레드를 소개한다. Pthreads API 및 Windows와 Java 스레드 라이브러리에 대해 논의한다. 암시적 스레딩을 지원하는 몇 가지 전략을 탐구한다. 다중 스레드 프로그래밍과 관련된 여러 쟁점들을 검토한다. window, linux의 스레드 지원에 대해 알아본다. 4.1 개요 스레드는 CPU 이용의 기본 단위 이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 그리고, 열린 파일이나 신호와 같은 운영체제 자원들을 공유한다. 지금 그림 4.1(..

면접 대비 운영체제 공부 (abraham 3장 Process)

초기 컴퓨터 시스템은 한 번에 하나의 프로그램만을 실행하도록 허용하였다. 그 프로그램은 시스템에 완전한 제어를 갖고 시스템의 모든 자원에 접근할 수 있었다. 오늘날의 컴퓨터 시스템들은 메모리에 다수의 프로그램들이 적재되어 병행 실행된다. 다양한 프로그램을 더 견고하게 제어하고 구획화 하기 위해서 실행 중인 프로그램을 말하는 프로세스의 개념이 생겼다. 프로세스는 현대의 시분할 시스템의 작업의 단위다. 운영체제는 커널에 포함시키지 않는편이 더 좋다고 판단된 다양한 시스템 작업들도 처리해야 한다. 그러므로 하나의 시스템은 프로세스들의 집합체이다. 즉, 운영체제 프로세스들은 시스템 코드를 실행하고, 사용자 프로세스들은 사용자 코드를 실행한다. 이런 모든 프로세스들은 잠재적으로 병행 실행이 가능하고, CPU는 이..

면접 대비 자료구조 공부 (abraham 2장 시스템 구조)

책의 맨 앞 서론은 꼭 읽는게 좋습니다 운영체제가 제공하는 서비스는 무엇이고 어떤 방식으로 서비스가 제공되는지 이 서비스들이 어떻게 디버깅 되며 시스템 설계를 위한 다양한 어떤 방법들을 사용되는지 고려한다. 마지막으로 운영체제가 어떻게 만들어지고 컴퓨터가 운영체제를 구동시크는 방법에 대해 설명한다. 이중에 1,2번만 제대로 이해했어도 내가 핀토스를 만드는 의미를 더 정확히 알 수 있었을 텐데 2.1 운영체제 서비스 사용자 인터페이스 프로그램 수행 입출력 연산 파일 시스템 조작 통신 오류 탐지 자원 할당 회계 보호와 보안 2.3 시스템 호출 (system call) 핀토스 2차 프로젝트이다. 이 부분은 나름 열심히 했었는데 당시에는 의미를 이해하지 못했다 2장이랑 연관성을 못찾은 내가 바보인듯... 시스템..

면접 대비 운영체제 공부 ( abraham 1장)

1. 컴퓨터 시스템의 구성 지금 까지 책을 쭉 본적도 없고 1장을 너무 개무시 한거 같다. 면접때 받은 질문이 1장에 있네 ㅋㅋㅋ 1.1.3 운영 체제의 정의 컴퓨터 시스템에서 자원을 제어하고 할당하는 수행하는 소프트웨어 보다 일반적인 정의의 운영체제는 컴퓨터에서 항상 수행되는 프로그램으로 커널이라 부른다. 프로 그램은 3개로 나뉘는듯 커널: 핀토스 하면서 어느 파일이 커널인지 구분을 못하겠던데... thread.c 이런거 그냥 다 커널인건가 커널을 호출한다는 말이 이해가 안된다 ㅠ 시스템 프로그램: 운영체제와 연관되어 있으며 커널의 일부분은 아니라함..? 응용 프로그램: 시스템 운영과 상관없는 모든 프로그램. 미들웨어?.. 데이터베이스,멀티미디어,그래픽스등을 제공한다함... 1.2.1 컴퓨터 시스템 연..

면접 대비 자료구조 공부 ( 호로비츠 6장 그래프)

6장 그래프 6.1.3 그래프 표현법 1. 인접 행렬 ??무슨말인지 모르겠다. 그래프 G에 있는 간선의 수를 알고자 하거나 그래프 G가 연결되어 있는가를 알고자 할 경우?? 그래프 G가 연결되어 있는가를 알고자 한다는게 무슨말이징 ㅠ 어쨋든 이경우 O(n^2) 희소 그래프의 경우 O(e+n) 시간 복잡도라한다. -> 이 부분 이해 잘 못했다. 알고리즘 문제 풀다가 인전 리스트로 구현한적은 많은데 인접 행렬로 구현한 적은 없는거 같다 언제 쓰는 놈일까 2.인접 리스트 이 놈은 구현을 c++ vector로 워낙 많이해 보아서 잘안다고 생각하는데.... 아닐수도... 아 모르는 용어 진입 차수 : 해당 노드로 부터 나간 간선의 숫자 진출 차수 : 해당 노드로 들어오는 간선의 숫자 3. 인접 다중 리스트 (ad..