목록전체 글 (88)
studio.heelab
교재: 『Kotlin in Action』 181~192p, 4.4 object 키워드: 클래스 선언과 인스턴스 생성 오늘의 주제는?Kotlin의 object 키워드를 학습했다. object는 클래스를 정의하면서 그 인스턴스도 만드는 키워드다. 이번 범위에서는 object를 사용하는 세 가지 방식인 객체 선언, 동반 객체, 객체 식을 살펴본다. 본론1. 객체 선언: 인스턴스가 하나만 필요한 경우객체 선언: 클래스 선언과 그 클래스에 속한 단일 인스턴스의 선언을 합친 선언 여러 곳에서 함께 사용할 객체가 하나만 필요하다면 object로 선언할 수 있다.object AppCounter { var count = 0 fun increase() { count++ }}AppCounter...
그래프(graph)는 대상과 대상 사이의 관계를 나타내는 자료구조다. 지하철역과 역 사이의 연결, 사람과 사람의 친구 관계, 컴퓨터와 컴퓨터 사이의 네트워크를 그래프로 표현할 수 있다.이번 글에서는 그래프의 기본 개념과 표현 방법, 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS), 신장 트리와 최소 비용 신장 트리를 정리한다. 1. 그래프의 기본 개념그래프는 정점(vertex)과 간선(edge)으로 이루어진다.정점: 관계를 맺는 대상. 지하철 노선도라면 각 역이다.간선: 두 정점 사이의 연결. 지하철 노선도라면 역을 잇는 구간이다.정점의 집합을 V, 간선의 집합을 E라고 할 때 그래프를 G = (V, E)로 나타낸다.A ─ B│ │C ─ D 위 그래프에서 A와 B는 간선으로 직접 연결되어 있으므로..
교재: 『Kotlin in Action』 106~114p, 3.2 함수를 호출하기 쉽게 만들기 오늘의 주제는?Kotlin에서 함수를 읽기 쉽고 간편하게 호출하는 방법을 학습했다. 책에서는 리스트의 원소를 문자열로 만드는 함수를 조금씩 개선하면서 이름 붙인 인자, 기본 파라미터 값, 최상위 함수와 프로퍼티를 설명한다. 본론1. joinToString 함수리스트를 그대로 출력하면 다음과 같은 형태가 나온다.val numbers = listOf(1, 2, 3)println(numbers)// 출력: [1, 2, 3] 원소를 (1; 2; 3)처럼 출력하려면 원소 사이에 넣을 구분자와 앞뒤에 붙일 문자를 정해야 한다. 이를 위해 joinToString 함수를 직접 구현한다. fun joinToString( ..
탐색은 데이터 가운데 원하는 조건을 만족하는 항목을 찾는 작업이다. 학생 명단에서 학번으로 학생을 찾거나, 연락처에서 이름으로 전화번호를 찾는 일이 탐색에 해당한다. 찾을 때 비교하는 값은 탐색 키(search key)라고 한다. 이번 글에서는 순차 탐색, 이진 탐색, 보간 탐색, 이진 탐색 트리를 정리한다. 1. 순차 탐색순차 탐색(sequential search)은 데이터의 처음부터 끝까지 값을 하나씩 확인한다. 정렬되지 않은 리스트에도 바로 사용할 수 있다.데이터 [35, 97, 41, 56, 28, 61]28 탐색 35 → 97 → 41 → 56 → 28결과 인덱스 4def sequential_search(a, key): for i, value in e..
교재: 『Kotlin in Action』 89~95p, 2.4 대상을 이터레이션: while과 for 루프 오늘의 주제는?Kotlin의 while과 for 루프를 학습했다. Kotlin에서는 조건에 따라 반복할 때 while을, 범위나 컬렉션의 원소를 차례로 처리할 때 for를 사용한다. 본론1. while과 do-whileKotlin에는 while과 do-while이 있다. 문법은 Java와 같다.var count = 1while (count while은 조건을 먼저 검사하고, 조건이 참인 동안 본문을 반복한다. 위 코드에서는 count가 1, 2, 3일 때 출력하고, 4가 되면 반복을 멈춘다.var count = 4do { println(count) count++} while (count..
정렬은 데이터를 정해진 기준에 따라 순서대로 배치하는 작업이다. 숫자를 작은 값부터 나열하는 오름차순 정렬이 가장 익숙하지만, 이름순이나 날짜순으로 정렬할 수도 있다. 이때 순서를 결정하는 값을 정렬 키(sort key)라고 한다.이번 글에서는 선택 정렬, 삽입 정렬, 퀵 정렬, 기수 정렬의 작동 방식과 파이썬에서 제공하는 정렬 기능을 정리한다.1. 정렬을 보기 전에 알아둘 용어안정성(stability)은 정렬 키가 같은 데이터들의 원래 순서가 정렬 후에도 유지되는 성질이다. 예를 들어 점수가 같은 두 학생을 점수순으로 정렬했을 때, 두 학생의 앞뒤 순서가 그대로라면 안정적인 정렬이다.제자리 정렬(in-place sort)은 별도의 큰 저장 공간을 만들지 않고 주어진 리스트 안에서 요소의 위치를 바꾸는 ..
