분류 전체보기

피보나치 수열 피보나치 수열의 경우에는 순환 호출을 사용하면 비효율적인 예시이다. 피보나치 수열은 다음과 같이 공식으로 표현한다. 구현과 성능 순환 호출과 반복문을 각각 활용하여 피보나치 수열의 값을 계산하는 함수를 구현하자. 구현을 통해서 왜 피보나치 수열에서 순환 방식이 반복보다 비효율적인지 알아본다. 순환 종료 조건 : n이 1이나 0인 경우 fib(n)=fib(n-1)+fib(n-2)로 순환 호출하여 계산한다. 순환호출로 함수를 구현하면 사실 알아보기 쉽고 간단해 보인다. 그러나 외연과 달리 효율성은 저멀리로 :D 날아간 코드라고 할 수 있겠다. 먼저 이 함수를 살펴보면, 함수 내에서 비교연산을 한번 수행하고, 이후 2개의 fib함수를 호출하여 연산한다. 따라서 n을 처음 넣었을 때, fib함수 ..
거듭제곱 X^n을 계산하는 알고리즘을 순환 방식과 반복 방식으로 작성할 수 있다. 먼저 결론을 말하면, 거듭 제곱은 앞선 팩토리얼과 달리 순환적인 방법이 더 효율적인 예제이다. ! 팩토리얼의 경우 순환, 반복 두 경우의 시간복잡도가 같았지만, 공간복잡도가 순환방식에서 더 컸기 때문에 반복 구현이 더 효율적임을 이전 포스팅에서 알아보았다. https://he-kate1130.tistory.com/26 [자료구조] 2. 순환 - 팩토리얼 팩토리얼 중등 교육과정을 겪어본 사람이라면 모두가 아는 팩토리얼!! 오늘은 팩토리얼을 계산하는 함수를 순환을 통해 구현해보자. 순환 알고리즘 앞선 포스팅에서도 말했지만, 순환 알고리즘 he-kate1130.tistory.com 구현 반복 순환 성능 시간복잡도를 통해 성능을 ..
팩토리얼 중등 교육과정을 겪어본 사람이라면 모두가 아는 팩토리얼!! 오늘은 팩토리얼을 계산하는 함수를 순환을 통해 구현해보자. 순환 알고리즘 앞선 포스팅에서도 말했지만, 순환 알고리즘은 알고리즘 내에서 자기 자신을 호출하는 방식으로 문제를 해결한다. 예상할 수 있는 순환 알고리즘의 가장 큰 문제점은 알고리즘의 종료에 있다. 알고리즘에 순환의 종료시점을 구현하지 않는다면, 알고리즘은 무한히 반복될 수 있다. 따라서 순환 알고리즘을 구현할 때, 순환부와 종료부를 확실하게 구현하도록 하자! 착오 없이 순환 알고리즘을 구현하려면, 큰 문제를 작은 부분문제로 생각하는 것이 중요하다. 알고리즘을 통해 해결하려는 문제점을 동일한 알고리즘의 작은 문제로 나누어 생각해야 순환부를 작성할 때 착오가 생기지 않는다. 정리하..
순환 알고리즘, 함수의 수행 중 자기 자신을 다시 호출하는 방법 문제의 정의 자체가 순환적으로 구성되어있는 경우에 적합한 문제 해결 방식이다. 이번 chapter에서는 순환 알고리즘을 적용하여 문제를 해결하는 대표적인 사례 4가지를 살펴 볼 예정이다. - 팩토리얼 https://he-kate1130.tistory.com/26 - 거듭제곱 https://he-kate1130.tistory.com/27 - 피보나치 수열 https://he-kate1130.tistory.com/28 - 하노이의 탑 문제
· ML
Decision Tree 머신 러닝에서 Decision Tree는 데이터를 분류하거나 예측하는 알고리즘 중 하나이다. 이 방식은 Classification과 Regression에 모두 사용 가능하다 Decision Tree가 어떻게 생겼는지 살펴본다. Root node와 Leaf node에 해당하는 사각형에는 feature가 들어간다. Branch의 경우 위의 feature에 대한 내용이 된다. Classification 먼저, Decision tree를 통해 classification 문제를 어떻게 해결할 수 있는지 알아본다. 이번 포스팅에서 예시로 드는 data와 classification 문제는 아래와 같다. Start 먼저 feature를 outlook으로 하여 decision tree를 작성해보..
우리는 혼자서 프로젝트를 통해 소프트웨어 개발을 할 수도 있지만, 사실상 대부분 팀 단위의 프로젝트를 수행한다. 팀 단위로 여러명의 개발자가 소프트웨어를 개발하게 되면, 혼자 프로젝트를 개발할 때 보다 더 많은 사항들을 고려하고, 계획하고, 관리해야한다. 이번 포스팅에서는 프로젝트의 계획에 대한 부분을 알아보도록 하자. Project Planning 프로젝트 계획은팀원들과 고객이 소통할 때와프로젝트의 진행상황을 평가하는데에 사용한다. 프로젝트의 계획에는 다음과 같은 작업이 포함된다. 작업을 여러 부분으로 나누어 프로젝트 팀 구성원에게 할당 발생할 수 있는 문제를 예상하고 해결방안을 준비 Planning stages 언제 project planning을 해야할까? 프로젝트의 계획은 초기에 한번만 세우고 끝..
· ML
베이즈 정리 P(A|B): 사건 B가 주어졌을 때 사건 A의 조건부 확률 (A가 일어날 확률) P(B|A): 사건 A가 주어졌을 때 사건 B의 조건부 확률 (B가 일어날 확률) P(A): 사건 A의 사전 확률 (B에 대한 어떠한 정보도 없을 때 A가 일어날 확률) P(B): 사건 B의 사전 확률 (A에 대한 어떠한 정보도 없을 때 B가 일어날 확률) 베이즈 정리는 조건부 확률 P(A|B)를 알고 싶을 때, P(B|A)의 확률을 이용하여 알아낼 수 있다는 점에서 유용하다 Generative learning algorithm generative learning algorithm에서 베이즈 정리를 통해 모델을 추정하는 방식을 사용한다. generative learning algorithm에서는 데이터의 기반이..
우리 팀은 이번 프로젝트를 시작하기에 앞서 팀원들 간 꼭 지켜야 할 team ground rule을 간단히 정하기로 하였다. 이번 프로젝트는 일년간 함께하는 나름 장기간의 프로젝트가 될 예정이기 때문에 다들 진지하고 열정적으로 참여했던 것 같다. 그라운드 룰의 양식은 구글링 한 결과를 참고하여 우리 팀에 맞게 어느정도 조정하여 만들었으며(사실 진짜 별것 없다), 그라운드 룰의 특성을 고려하여 지속적으로 수정/업데이트 하는 방향으로 결정하였다. * 이외로는 오프더레코드로 팀의 목표와 방향성을 함께 논의하며 프로젝트를 시작하였다. 그라운드 룰의 양식은 아래와 같다. 1. 의사소통 2. 의사결정 3. 회의예절 4. 프로젝트 전반 5. 주기적인 검토와 업데이트 Ground Rule 의사소통 카카오톡 알림 확인을..
mingyung
'분류 전체보기' 카테고리의 글 목록 (8 Page)