<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://itbloger.kro.kr/</id><title>지워니가 운영하는 블로그</title><subtitle>미니멀한 블로그를 구축하겠습니다</subtitle> <updated>2026-03-28T21:32:31+09:00</updated> <author> <name>김지원</name> <uri>https://itbloger.kro.kr/</uri> </author><link rel="self" type="application/atom+xml" href="https://itbloger.kro.kr/feed.xml"/><link rel="alternate" type="text/html" hreflang="kr" href="https://itbloger.kro.kr/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 김지원 </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>힙 정렬(heap sort)</title><link href="https://itbloger.kro.kr/posts/%ED%9E%99-%EC%A0%95%EB%A0%AC(Heap-Sort)/" rel="alternate" type="text/html" title="힙 정렬(heap sort)" /><published>2025-08-02T00:00:00+09:00</published> <updated>2025-08-02T00:00:00+09:00</updated> <id>https://itbloger.kro.kr/posts/%ED%9E%99-%EC%A0%95%EB%A0%AC(Heap-Sort)/</id> <content type="text/html" src="https://itbloger.kro.kr/posts/%ED%9E%99-%EC%A0%95%EB%A0%AC(Heap-Sort)/" /> <author> <name>김지원</name> </author> <summary>힙 정렬(Heap Sort) 완전 이진 트리를 기본으로 하는 힙 자료구조를 기반으로 한 정렬 방식이다. 불안정 정렬에 속한다. [완전 이진 트리?] 삽입할 때, 왼쪽부터 차례대로 추가하는 이진 트리 시간 복잡도 평균 : O(N logN) 최선 : O(N logN) 최악 : O(N logN) 로직 최대 힙을 구성한다. 현재 힙 루트는 가장 큰 값이 존재한다. 루트의 값을 마지막 요소와 바꾼 후, 힙의 사이즈를 하나 줄인다. 힙의 사이즈가 1보다 크면 위의 과정을 반복한다. 루트 노드를 마지막 노드로 대체한다. (11-&amp;gt;4) 그리고 다시 최대 힙 구성. 이와 같은 방식으로 최대 값을 하나씩 뽑아내면서 정렬하는 것이 Heap Sort이다. ...</summary> </entry> <entry><title>프로세스와 스레드</title><link href="https://itbloger.kro.kr/posts/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C/" rel="alternate" type="text/html" title="프로세스와 스레드" /><published>2025-08-02T00:00:00+09:00</published> <updated>2025-08-02T00:00:00+09:00</updated> <id>https://itbloger.kro.kr/posts/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C/</id> <content type="text/html" src="https://itbloger.kro.kr/posts/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C/" /> <author> <name>김지원</name> </author> <summary>프로세스 vs 스레드 프로그램이란? 어떤 작업을 위해 실행할 수 있는 파일을 의미한다. 프로세스(Process) 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받은 작업의 단위다. 운영체제로부터 시스템 자원을 할당받는다. 할당받는 시스템 자원 CPU 시간 운영되기 위한 주소 공간 Code, Data, Stack, Heap의 구조로 되어있는 독립된 메모리 영역. 기본적으로 프로세스마다 최소 1개의 스레드를 갖는다.(메인 스레드) 프로세스는 각각 별도의 메모리 영역(주소 공간)을 할당받는다. [Code, Data, Stack, Heap] 한 프로세스는 다른 프로세스의 변수나 ...</summary> </entry> <entry><title>투포인터 알고리즘</title><link href="https://itbloger.kro.kr/posts/%ED%88%AC%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/" rel="alternate" type="text/html" title="투포인터 알고리즘" /><published>2025-08-02T00:00:00+09:00</published> <updated>2025-08-02T00:00:00+09:00</updated> <id>https://itbloger.kro.kr/posts/%ED%88%AC%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</id> <content type="text/html" src="https://itbloger.kro.kr/posts/%ED%88%AC%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/" /> <author> <name>김지원</name> </author> <summary>투포인터 알고리즘 투포인터 알고리즘(Two Pointers Algorithm) 또는 슬라이딩 윈도우(Sliding Window)라고 부른다. 이번에 20년도 상반기 라인 공채 코딩 테스트에서 이를 활용할 만한 문제가 나왔다. 그래서 예전에 정리했던 내용을 떠올리며, 다시 정리하려 글을 쓴다. 알고리즘 문제를 풀다 완전탐색으로 해결하면 시간 초과가 나는 문제가 종종 있다. 어떻게 풀어야 하는지 그 당시 검색했을 때, 투 포인터 알고리즘 이 대안이었다. 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 것을 얻는 형태이다. 이때문에 투포인터 알고리즘이라 부른다. N칸의 1차원 배열이 있을 때, 부분 배열 중 그 원소의 합이 M이 되는 경우의...</summary> </entry> <entry><title>퀵 정렬(quick sort)</title><link href="https://itbloger.kro.kr/posts/%ED%80%B5-%EC%A0%95%EB%A0%AC(Quick-Sort)/" rel="alternate" type="text/html" title="퀵 정렬(quick sort)" /><published>2025-08-02T00:00:00+09:00</published> <updated>2025-08-02T00:00:00+09:00</updated> <id>https://itbloger.kro.kr/posts/%ED%80%B5-%EC%A0%95%EB%A0%AC(Quick-Sort)/</id> <content type="text/html" src="https://itbloger.kro.kr/posts/%ED%80%B5-%EC%A0%95%EB%A0%AC(Quick-Sort)/" /> <author> <name>김지원</name> </author> <summary>퀵 정렬(Quick Sort) 개념 퀵 정렬은 분할 정복 방법을 통해 주어진 배열을 정렬한다. 분할 정복(Divide and Conquer) : 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. 또한, Merge Sort와 달리 Quick Sort는 배열을 비균등하게 분할한다. 로직 배열 가운데서 하나의 원소를 고른다. 이렇게 고른 원소는 피벗(pivot)이라고 한다. 피벗 앞에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 배열을 둘로...</summary> </entry> <entry><title>코틀린 간단한 개념2</title><link href="https://itbloger.kro.kr/posts/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%84%EB%8B%A8%ED%95%9C-%EA%B0%9C%EB%85%902/" rel="alternate" type="text/html" title="코틀린 간단한 개념2" /><published>2025-08-02T00:00:00+09:00</published> <updated>2025-08-02T00:00:00+09:00</updated> <id>https://itbloger.kro.kr/posts/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%84%EB%8B%A8%ED%95%9C-%EA%B0%9C%EB%85%902/</id> <content type="text/html" src="https://itbloger.kro.kr/posts/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%84%EB%8B%A8%ED%95%9C-%EA%B0%9C%EB%85%902/" /> <author> <name>김지원</name> </author> <summary>들어가기에 앞서 class Test{ // 생성자가 없는 기본 클래스의 형태. } class Test(){ // 인자가 없는 생성자가 있는 클래스의 형태. } 생성자 자바와 조금 다르다 init 블록을 사용해 기본 생성자를 대체할 수 있다. 생성자에 인자가 필요한 경우 인자처럼 받을 수 있다. → 이를 주 생성자라 부른다. class Test{ init{ // 기본 생성자에서 수행할 작업. // 예를 들면, 초기화?! } } class Test(a: Int){ init{ println(a) } } 생성자의 인자를 통해 클래스 내부의 프로퍼티에 값을 할당한다. 생성자의 인자를 통해 프로퍼티 선언을 대신할 수 있다. 따라서 추가로 프로퍼티...</summary> </entry> </feed>
