본문 바로가기

분류 전체보기88

[Week01] 특별한 과제. 나를 돌아보는 시간과 정글에서의 목표 정글에서 특별한 과제를 내주셨다. 지나온 과거를 성찰하고, 앞으로 다섯 달 동안 내가 얻어가고 싶은 것, 어떤 자세로 임하고 싶은지, 정글이 끝난 후 나의 모습은 어땠으면 좋겠는지를 생각한 후 이를 에세이로 작성해야 하는 과제이다. 사실 정글 과정을 준비하는 과정에서 여러 번 생각해 본 내용들이었는데, 이번 기회에 글로 한 번 잘 정리해보려 한다. 지나온 과거 난 태생적으로 욕심이 많은 사람이었다. 하고 싶은 것도, 이루고 싶은 것도 많은 사람. 욕심보다는 야망이라는 단어가 더 잘 어울릴지도 모르겠다. 나의 욕심은 '바라는 모습이 되지 못하면 어쩌지'라는 두려움을 항상 수반했기에 나를 발전시키는 원동력이기도 했지만 나 자신을 있는 그대로 받아들이지 못하게 하며 자존감을 해치는 칼날이기도 했다. 서른을 목.. 2022. 9. 24.
[📚누구나 자료구조와 알고리즘] 4. 버블 정렬과 O(N^2) 정렬이란 단어는 알고리즘을 몰라도 이미 익숙한 단어이다. 엑셀에도 여러 값이 있는 자료를 '정렬'하면 해당 값들이 오름차순 또는 내림차순으로 정렬된다. 정렬 알고리즘도 이와 같이 '정렬되지 않은 배열을 오름차순으로 정렬'하는 방법들이다. 컴퓨터 과학분야에서 오랜 기간동안 다양한 정렬 알고리즘들이 연구 & 개발되었다. 버블 정렬 (Bubble sort) 그 중 가장 기본적인 (그리고 상대적으로 비효율적인) 정렬 알고리즘인 버블 정렬은 아래 gif와 같이 진행된다.(출처) 버블정렬은 원소를 순서대로 두 개씩 비교하면서, 왼쪽 값이 오른쪽 값보다 큰 경우 두 값을 서로 교환하고(swap), 그렇지 않으면 그대로 둔다. 그 다음 오른쪽으로 한 칸 이동해서 똑같은 작업을 수행한다. 이렇게 가장 오른쪽 원소까지 이.. 2022. 9. 13.
[📚누구나 자료구조와 알고리즘] 3. Big-O Notation : O(N), O(1), O(logN), O(N^2) 빅오 (Big-O) 컴퓨터 과학자들이 알고리즘의 효율성(시간복잡도)을 표기하기 위해 수학적 개념을 차용한 방법이 빅 오 표기법이다. [1] 원소가 N개일 때, 알고리즘에 최대 몇 단계가 필요할까? [2] 원소가 N개일 때, 원소가 늘어남에 따라 알고리즘에 필요한 단계 수가 어떻게 늘어날까? 중요 ! 빅오표기법은 결국 위의 질문에 대한 답을 O()의 괄호 내에 나타내는 것이다. O(N) 선형검색 알고리즘의 경우, 최악의 경우 원소 갯수 만큼의 단계가 필요하다. 예를 들어 100개의 원소 중 찾는 원소가 맨 마지막에 있거나, 없는 경우 100번을 모두 검색해야 하기 때문이다. 고로 선형검색을 위의 1번 질문에 대입해보자면 (= 원소가 N개일 때, 선형 검색에는 최대 몇 단계가 필요할까?) 답은 N 이다. 이.. 2022. 9. 13.
[📚누구나 자료구조와 알고리즘] 2. 알고리즘이 중요한 까닭 - 선형검색과 이진검색 이전 포스팅에서는 자료 구조의 기본 연산과, 자료 구조에 따라서 각 연산의 효율성이 달라질 수 있다는 것을 다루었다. 자료 구조의 기본 연산과 속도 측정 (시간복잡도)의 이해 자료구조의 기본 연산 자료구조의 네 가지 기본 연산 방법은 읽기, 검색, 삽입, 삭제 이다. 읽기: 특정 '위치'의 '값'을 찾아내는 연산 e.g. A배열의 3번째 값은 무엇인가? 검색: 특정 '값'의 '위치'를 stay-present.tistory.com 이번 포스팅에서는 동일한 자료 구조에서도 더 효율적인 결과를 낼 수 있는 코드(알고리즘)를 사용할 수 있는 방법을 다루어보려고 한다. 알고리즘 Algorithm. 알고리즘은 어떤 일을 수행하기 위한 명령어들의 집합이다. 카카오톡 보내기 알고리즘이 있다고 가정한다면, 이 알고리즘은.. 2022. 9. 8.
[📚누구나 자료구조와 알고리즘] 1. 자료 구조의 기본 연산과 속도 측정 (시간복잡도)의 이해 자료구조의 기본 연산 자료구조의 네 가지 기본 연산 방법은 읽기, 검색, 삽입, 삭제 이다. 읽기: 특정 '위치'의 '값'을 찾아내는 연산 e.g. A배열의 3번째 값은 무엇인가? 검색: 특정 '값'의 '위치'를 찾아내는 연산 e.g. 'iphone'이라는 값이 A라는 배열에 존재하는가? 있다면 몇번째 위치에 존재하는가? 삽입: 새로운 값을 추가하는 연산 e.g. 'ipad'라는 값을 A라는 배열에 추가 삭제: 특정 인덱스의 값을 제거하는 연산 e.g. 'iMac'이라는 값을 A라는 배열에서 삭제 자료구조 연산의 속도 측정 자료구조를 배우는 궁극적인 목적은 가장 효율적인 자료구조를 사용하기 위해서이다. 그렇다면, 효율성이란 어떻게 측정될 수 있을까? 우선 '속도가 빠른' 자료구조가 효율적이라고 할 수 있.. 2022. 9. 6.
프로그래밍 기초 책 추천 [프로그래밍 비타민] 집 근처 도서관에서 IT분야 책을 보다가 발견한 책이다. 표지 한 켠에 '10대를 위한 프로그래밍 노트'라고 적혀있어서 엄청 쉬운 책인가 싶었는데, 목차를 보니 리스트, 스택, 큐, 트리, 이진 탐색 트리, 다익스트라 알고리즘 등, 기초 자료 구조들 까지 다루고 있었다. 추천 대상 : 프로그래밍 언어와 컴퓨터 자료 구조에 대해서 깊이 공부하기 전에 가볍게 익혀보고 싶은 사람 누구나! 도서 정보: http://www.yes24.com/Product/Goods/19499883 프로그래밍 비타민 - YES24 소프트웨어 교육의 키포인트, 컴퓨팅 사고력과 프로그래밍 원리 이 책은 소프트웨어 교육을 위한 프로그래밍 핵심 원리를 기초부터 알고리즘까지 알려준다.각 장의 주제와 관련된 재미있는 문 www.yes24.c.. 2022. 9. 3.
반응형