Blog Content

  • [자료구조/문제] 중앙값(Median) 구하기, BOJ 2696, Heap

    Category 개발레시피/└ Algorithm on 2017. 5. 27. 22:03

    문제 : https://www.acmicpc.net/problem/2696 홀수번째 수를 읽을 때마다 지금까지 입력받은 수의 중앙값을 구하는 문제이다.이 문제는 Heap을 이용하여 풀 수 있다.Heap은 수를 담는 자료구조로, Java에서는 우선순위큐(PriorityQueue)로 구현할 수 있다.Heap은 완전이진트리이며, 모든 정점은 자신의 자식보다 우선순위가 높다는 것이 중요한 성질 중 하나이다. Top이 최대값인 우선순위큐를 최대힙(MaxHeap)Top이 최소값인 우선순위큐를 최소힙(MinHeap) 이라고 한다.따라서, MaxHeap은 담긴 수 중 최대값을 바로 알 수 있고 최대값을 pop할 수 있다.또한 MinHeap은 담긴 수 중 최소값을 바로 알 수 있고 최소값을 pop할 수 있다. Prior..

    Read more
  • [자료구조/문제] 탑, BOJ 2493, stack

    Category 개발레시피/└ Algorithm on 2017. 5. 27. 19:55

    문제KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이가..

    Read more
  • [자료구조/개념] 유니온 파인드 (Union-Find)

    Category 개발레시피/└ Algorithm on 2017. 5. 27. 19:54

    Find 연산 어떤 정점의 루트를 찾아주는 연산입니다.자신이 루트라면 자신을 리턴합니다. 아래의 코드를 봅시다. 자신의 부모를 가르키는 배열이 par 이라고 정의했을 때,자신이 루트이면 자신을 리턴하고그렇지 않으면 재귀함수로 경로의 모든 노드의 부모를 루트로 재설정 해줍니다. Union 연산두 집합을 하나로 합쳐주는 연산입니다.들어온 인자들의 루트를 찾아서 비교한 다음루트가 다르면 둘 중 하나의 루트를 다른 하나의 루트의 자식이 되도록 변경합니다.그렇지 않으면 (루트가 같으면) 그냥 return하여 종료시킵니다. 요약하면,find(i) 는 i번의 루트를 찾는다는 연산이고union(a,b) 는 a와 b를 합치겠다는 연산입니다.

    Read more
  • [Chrome Extension] manifast.json 파헤치기

    Category 개발레시피/└ Front-End on 2017. 5. 27. 19:51

    모든 Chrome Extension은 중요한 정보를 제공하는 manifest.json이라는 이름의 json 포맷으로된 파일을 가지고 있습니다.몇몇의 Filed들을 살펴볼까요?{ "manifest_version": 2, "name": "tetoda_robot_chromeExtension", "description": "Hello!", "version": "1.0.0", "background": { //Recommended "scripts":["background.js"] "persistent": false }, "content_scripts":[{...}], "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "p..

    Read more
  • [Chrome Extension] 크롬 확장프로그램 만들기

    Category 개발레시피/└ Front-End on 2017. 5. 27. 19:50

    1. 준비사항JavascriptHTMLChrome BrowserGoogle extension api documentation : https://developer.chrome.com/extensions/api_index 2. Chrome Extension 예제→ 간단한 샘플 프로그램 만들기→ https://developer.chrome.com/extensions 를 방문하면 다양한 것을 익힐 수 있다.2.1. manifest.json 만들기manifest.json은 확장 프로그램의 정보가 담긴다. 확장 프로그램의 이름, 설명, 어떠한 파일들을 사용하는지, 브라우저의 어떤 퍼미션을 필요로 하는지 등을 기술한다.{ "manifest_version": 2, "name": "tetoda_robot_chromeEx..

    Read more
  • [자료구조/개념] Java API를 이용한 Stack과 Queue 구현

    Category 개발레시피/└ Algorithm on 2017. 5. 27. 19:45

    Stack과 Queue개념Stack과 Queue는 List보다 좀 더 제한된 Data Structure입니다.Element가 List처럼 순차적으로 배열되지만,추가 및 삭제시 컬렉션의 끝에서만 실행할 수 있습니다.아래 그림을 보고 좀더 구체적으로 알아봅시다. Stack은 LIFO (Last in, First out) 구조로서,엘리먼트가 추가될 때 stack에 쌓이고, 꺼내 쓸때는 위에서부터 꺼내쓰기 때문에마지막에 들어갔던 엘리먼트가 처음으로 꺼내지는 구조입니다. 반대로 Queue는 FIFO (First Out, First In) 구조로서,엘리먼트가 컬랙션의 끝(꼬리)에 하나씩 추가되고,꺼내질때는 컬랙션의 다른 끝(머리)에서 제거되므로처음에 들어갔던 엘리먼트가 처음으로 꺼내지는 구조입니다. Java에서의 ..

    Read more
  • [자료구조/개념] 배열과 리스트

    Category 개발레시피/└ Algorithm on 2017. 5. 27. 19:42

    자료구조를 공부하다가, 아는 내용인데 자꾸 정리가 안되어서생활코딩 및 여러 블로그를 참조하여 공부한 것을 정리해보았습니다. 배열과 리스트의 개념배열 : 일렬로 늘어선 같은 종류의 자료 여러개를 저장하기 위한 가장 기초적인 자료구조리스트 : 배열의 단점을 보완하여, 빈틈없는 데이터 적재의 장점을 취한 자료구조 배열과 리스트의 특징배열 - 인덱스가 있어, 이를 이용해 데이터를 빠르게 조회할 수 있다.- 메모리 낭비를 초래함. 어떤 엘리먼트가 삭제되면 그 공간을 빈 공간으로 두어야 함.- 따라서 배열 내에 데이터의 여부도 함께 체크해야할 필요가 있음. 리스트- 리스트에서는 인덱스가 중요하지 않음. 핵심은 바로 엘리먼트들간의 순서임.- 즉 순서가 있는 데이터의 모임이 리스트라고 할 수 있음.- 또한 빈 엘리먼트..

    Read more
  • [Tool] ConEmu, 윈도우 콘솔 에뮬레이터, 예쁘게 cmd창 사용하기

    Category 개발레시피/└ 유틸 on 2017. 5. 27. 19:40

    ConEmu기본적으로 Window에서는 투박하게 생긴 기본 명령 콘솔(cmd)을 지원하고 있다.ConEmu는 이 투박한 cmd를 좀 더 예쁘게 쓰기 원하거나,전문가처럼(?) 사용하고 싶은 사람들을 위한 툴이다. 프로그램 공식 홈페이지는 다음과 같다.http://conemu.github.io/일반 사용자는 Installer 버전을 받아서 설치하면 된다. 쓰기 편하도록 설정하기-> 실행창에서 바로 실행 1. 설치 후 conemu바로가기를 생성한다.2. 생성된 conemu바로가기는 cc로 이름을 바꿔준다. (cc외에 각자 사용하기 편한 이름으로 변경 가능)3. System32 폴더에 넣어준다. 기본 경로 : C:\Windows\System32여기까지 하면 실행 준비 완료.4. win+r 키를 누르고 실행창에서..

    Read more