목록전체 글 (84)
studio.heelab
교재: 『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)은 별도의 큰 저장 공간을 만들지 않고 주어진 리스트 안에서 요소의 위치를 바꾸는 ..
교재: 자료구조와 알고리즘 with 파이썬, 156~172p1. 알고리즘이란?알고리즘(algorithm)은 주어진 문제를 해결하기 위한 단계적인 절차이다.컴퓨터가 어떤 일을 수행해야 하는지 순서대로 나타낸 것으로, 문제를 해결하는 명령들의 집합으로 볼 수 있다.같은 문제도 여러 알고리즘으로 해결할 수 있다. 예를 들어 1부터 n까지의 합은 반복문으로 하나씩 더하거나, 합 공식을 이용해 구할 수 있다.알고리즘은 해결 절차 자체이므로 특정 프로그래밍 언어에 종속되지 않는다. 같은 알고리즘을 파이썬, C, Java 등으로 구현할 수 있다.알고리즘의 조건명령들을 나열했다고 모두 알고리즘이 되는 것은 아니다. 다음 조건을 만족해야 한다.조건의미입력0개 이상의 입력이 명확하게 정의되어야 함출력1개 이상의 결과를 생..
1. 리스트list 또는 linear list는 자료들이 차례대로 나열된 선형 자료구조이다어떤 위치에서도 새로운 요소 삽입가능하다삽입 후 모든 자료가 한 칸씩 뒤로 밀린다삭제 후에도 모든 요소의 위치가 변경된다 리스트의 주요 연산 2. 배열 구조와 연결된 구조연결된 구조( linked structure )메모리에 홀이져 있는 요소들을 링크로 연결해 하나로 관리하는 것연결된 구조에서 k번째 요소 위치 찾는게 더 오래 걸릴 수도 있다 그럼에도 사용하는 장점배열은 용량이 고정된다연결된 구조는 용량이 고정돼있지 않는다. 크기만큼 새로 할당해서 쓰는 것->메모리 효율적 사용삽입도 마찬가지,배열은 모든 요소 한 칸씩 밀어야 하지만 연결된 구조는 삽입할 위치에 바로 넣으면 됨 삭제 연산도 동일하다 3. 배열 구조의 ..
교재: 자료구조와 알고리즘 with 파이썬 Ch01. Stack스택이란?자료의 입출력이 후입선출(LIFO)의 형태로 제한되는 자료구조스택 상단(stack top): 스택에서 열린 곳 항목 or 요소(element): 스택에 저장되는 것 스택의 활용 예: 웹 브라우저의 [이전 페이지로 이동] 추상 자료형추상화: 자료형의 자세하고 복잡한 내용 대신 필수적이고 중요한 특징 골라서 단순화시키는 작업. 주로 새로운 자료형 정의 시 수행추상 자료형(ADT): 추상화를 통해 정의한 자료형스택의 추상 자료형은 어떤 자료 다루고, 어떤 연산 필요한지 정의해 보는 것 스택의 연산push(e): 새로운 요소 e를 스택 맨 위에 추가pop(): 스택 맨 위 요소를 꺼내서 반환isEmpty(): 스택이 비어 있으면 true ..
교재: 자료구조와 알고리즘 with 파이썬 Ch02. Queue큐란?가장 먼저 들어간 자료가 가장 먼저 나오는 자료구조선입선출(FIFO)후단(rear): 삽입이 일어나는 곳전단(front): 삭제가 일어나는 곳 -시간이나 속도 차이 극복하기 위한 임시 기억 장치(버퍼)로 사용됨 큐의 연산enqueue(e): 새로운 요소 e를 큐의 맨 뒤에 추가dequeue(): 큐의 맨 앞에 있는 요소를 꺼내서 반환isEmpty(): 큐가 비어 있으면 true 아니면 false 반환isFull(): 큐 가득 차 있으면 true 아니면 false 반환peek(): 큐 맨 앞 요소 삭제 안하고 반환size(): 큐에 든 전체 요소의 수 반환오버플로 오류 - 포화 상태 큐에 enqueue() 연산 실행언더플로 오류 - 공백..
