분류 전체보기 245

2022 02 18 나의 일기

지금까지 내가 가장 나아졌다고 자부할 수 있는 하루였다. 아침에 일어나자마자 바로 옷입고 산으로 가서 산책하고 오자마자 씼고 아침먹고 영어책펴고 공부하다가 점심먹고 컴퓨터 공부에 마무리로 자기전 책읽기까지!! 사이에 게임도 안했다! 절제 잘하고 정말 뿌듯한 하루였다. 남들은 정말 쉽게 할지 몰라도 나는 오히려 성인이 되고 절제하기가 힘들었는데 이젠 나도 뭔가를 느끼나 보다. 점점 배우는 재미가 생기고 하루하루를 로스트 아크하는 것처럼 차곡차곡 내실쌓아가는 재미로 열심히 산다. 블로그에 글이 쌓일때마다 나의 기억과 지식같은 나에 대한 뿌듯함을 책장에 채워넣는 느낌이다. 그냥 기분이 좋다. 로스트 아크라는 게임을 통해 인생도 게임에서 능력치 올리는 것처럼 살면 재밌겠다는 생각으로 관점을 바꿔봤는데 이 세상은..

나의 일기 2022.02.18

알고리즘 작성 방법

분할 정복(Divide and Conquer) 분할 정복(divide and conquer)이란 해결해야 될 문제를 작은 단위로 나누어 더 이상 나눌 수 없어지는 단계가 되면 그 단계에서 문제를 해결하고 이를 통해 본래 문제로 거슬러 올라가는 방식의 문제해결 방법이다. 때로는 가장 작은 단계의 해답이 본래 문제의 해답이 되기도 한다. 분할 정복의 사용 예시로는 합병 정렬(merge sort)가 있다. 동적 계획법(Dynamic Programming) 동적 계획법(Dynamic Programming)은 문제를 분할한다는 점에서는 분할 정복과 같지만 이전 문제의 해답을 이용하여 다음 문제를 푼다는 점에서 분할 정복과의 차이점을 보인다. 팩토리얼을 예로 들어 설명하도록 하겠다. 우리가 10!의 해답을 구하면 ..

자료구조 2022.02.17

재귀 알고리즘과 반복 알고리즘

반복 알고리즘(loop algorithm) 반복 알고리즘(loop algorithm)이란 for, while과 같은 반복문을 이용하여 문제를 해결하는 알고리즘을 말한다. 반복문을 이용한 알고리즘으로는 1부터 100까지 더하는 합 알고리즘이 있다. 재귀 알고리즘(recursive algorithm) 함수는 자기 자신을 내부에서 호출할 수 있다. 이러한 함수를 재귀 함수라고 한다. 재귀 알고리즘(recursive algorithm)이란 재귀 함수를 이용하여 문제를 해결하는 알고리즘을 말한다. 재귀 알고리즘은 팩토리얼이나 피보나치 수열등에 쓰인다. 재귀 함수와 반복문의 차이 재귀 함수와 반복문은 속도나 작동 방식에서 차이가 난다. 반복문은 프로그래머가 지정해준 초기값, 조건값, 증감값을 통해 반복을 제어하고 ..

자료구조 2022.02.17

Big-O 표기법과 시간 복잡도 함수

앞선 포스팅에서 Big-O표기법에 대해 간략하게 설명한 적이 있다. 여기서는 Big-O표기법에 대해 좀 더 자세한 설명과 함께 Big-O표기법을 나타내는 대표적인 함수와 여러가지 연산 규칙에 대해 설명 하려고 한다. Big-O 표기법이란?(what is Big-O notation?) Big-O 표기법은 알고리즘의 점근적 상한을 나타내는 표기법이다. 즉, 알고리즘이 최악의 상황에서 작동할 경우, 표기한 증가 함수와 유사한 방식으로 증가함을 나타내는 것이다. Big-O 표기법의 수학적 정의는 다음과 같다. 정의 n ≥ n0인 모든 n에 대해 f(n) ≤ c · g(n)를 만족하는 양의 상수 c와 n0가 존재하면 f(n) = O(g(n))이다. 정의를 좀 더 쉽게 이해하기 위해서 예시를 통해 정의를 설명해 보..

자료구조 2022.02.16

알고리즘 성능 분석

알고리즘 성능 분석 (Performance Evaluation of Algorithm) 알고리즘은 문제 해결을 하기 위한 레시피와 같다. 그러나 레시피는 세상에 하나만 존재하지는 않는다. 음식을 만들 때 각자의 방식이 있듯이 하나의 문제에 대한 알고리즘도 다양하게 나올 수 있다. 우리가 1부터 100을 더할 때 정말로 1부터 100을 다 더할 수 있지만 공식을 통해 빠르게 풀어낼 수도 있다. 다양한 알고리즘들 중에 문제를 비효율적으로 해결하는 알고리즘을 가지고 문제를 해결하고 싶은 사람은 없을 것이다. 그렇기에 어떤 기준을 가지고 알고리즘을 평가하게 되는데 그 기준이 공간 복잡도(space complexity)와 시간 복잡도(time complexity)이다. 공간 복잡도(Space Complexity)..

자료구조 2022.02.15

2022 02 15 나의 일기

오늘의 기분 좋은 일이 일어났다. 공부하는 도중 영어로 된 수학적 정의를 사용해야될 일이 있어서 찾아봤는데 영어로는 이해가 되는데 도무지 한글로는 딱히 생각이 나지 않는 것이다. 가끔 원서vs번역본 글을 찾아보는데 대부분 사람들이 영어에 익숙하면 영어로 찾아보는게 더 이해하기 쉽다고 했다. 오히려 이걸 한글로 바꾸려고 하면 더 어렵다는 말을 많이 봤다. 나는 그런 수준에 올라간 사람들은 얼마나 공부를 했길래 그랬을까와 함께 나도 영어 그대로 알아먹는 날이 왔으면 좋겠다는 생각도 들었다. 근데 요즘 그게 슬슬 된다. 물론 한국어로 되어있으면 아주 이해하기 편하지만 영어로 된 글도 점점 읽는 속도가 빨라지고 있다. 계속해서 영어로 된 문서를 읽어야겠다. 언젠가 영어로 된 책을 있는 그대로의 감정을 느끼면서 ..

나의 일기 2022.02.15

2022 02 15 나의 꿈 일기

달러구트님!! 환불해주세요!! 오늘도 똑같은 기분 나쁜 꿈이다. 학교 운동장에서 축구를 하는데 못 한다고 무시와 조롱을 받고 잘 하고 싶어서 옆에서 연습하면 괜히 옆에 와서 시비 걸고... 내 무의식 속에 학교에 대한 안 좋은 생각이 많이 있나보다. 좋지 않았던 건 맞다. 그냥 다른 사람과 부딫히는게 싫었다. 서로 장점이 있는데 지들 생각대로 평가하고 기준에 안 맞으면 뒤떨어졌다고 생각하는 곳. 그냥 학교가 싫었고 지금도 싫다.나의 사람에 대한 근본적인 생각은 안 없어질 것 같다. 단지 참고 사는 거지... 상식을 벗어나는 사람들을 보면 정말 죽이고 싶은 강한 충동이 올라온다. 근데 그 상식을 벗어나는 사람들이 잘 산다는 사실이 너무 분하다. 있는 놈들이 더 하고 지들끼리 선 그어놓고 없는 계급만들고 그..

나의 일기 2022.02.15

2022 02 14 나의 일기

오늘은 갓생 도전을 해보았다. 근데 완전한 갓생은 아니고 반갓생은 됐다. 아침 일찍 일어나서 둘레길을 돌고 잠시 쉬다가 책을 읽고 일기를 쓰고 있다. 일단 아침에 일찍 일어나니까 하루가 정말 길다. 이전에도 아침 일찍 일어나기는 했는데 오늘 유달리 시간이 많이 있다는 걸 느낀 이유가 일찍 일어나서 머리 속에 남는 뭔가를 계속하니까 시간이 무의미한 느낌이 들지 않아서인 것 같다. 이번주는 하루에 1시간 운동을 생활화하는데 초점을 둬야겠다. 1시간 운동을 하면 걷기도 6000걸음이 딱 된다. Good! 아! 그리고 가끔 어떻게 블로그를 들어오나 보는데 인터넷에 검색을 하면 내 블로그가 나온다는게 신기했다. 그리고 생각보다 내 블로그의 글을 읽어주는 분들이 많이 있다. 컴퓨터분야 포스팅을 꾸준히 올려야겠다. ..

나의 일기 2022.02.14