본문 바로가기

Data Science5

[DSA 101] 4. Sorting [DSA] 2. Searching algorithm[DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤jae-walker.tistory.com [DSA] 3. Iteration vs. Recursion[DSA] 2. Searching algorithm이전글 : 2025.04.13 - [Data Science] - [DSA] 1. Computation Complexity와 Big-O [DSA] 1. Computation Complex.. 2025. 4. 15.
[DSA 101] 3. Iteration vs. Recursion [DSA] 2. Searching algorithm이전글 : 2025.04.13 - [Data Science] - [DSA] 1. Computation Complexity와 Big-O [DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서jae-walker.tistory.com 이전 글에서는 searching algorithm인 linear search와 binaray search에 대해 살펴보고, 각각의 time complexity가 어떻게 되는지 계산해 보았다. 또 다른 basic algorithm인 sorting으로 넘어가기 전, 잠깐 iteratio.. 2025. 4. 13.
[DSA 101] 2. Searching algorithm [DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤 문제를 해결하기 위한 방법이jae-walker.tistory.com 앞선 글에서 알고리즘은 어떤 문제를 해결하기 위한 일련의 계산 절차이며, 알고리즘의 complexity를 평가하기 위한 Big-O notation에 대해서 살펴보았다. 그럼 이제 몇 가지 알고리즘에 요걸 적용해보자. Searching algorithm먼저, 가장 간단한 searching algorithm이다.Se.. 2025. 4. 13.
[DSA 101] 1. Computation Complexity와 Big-O Algorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤 문제를 해결하기 위한 방법이 딱 하나만 있는 것은 아니다. 그럼 우리는 어떤 알고리즘을 선택 or 개발해야 할까?문제를 해결하기 위해 필요한 cost, 즉 "비용"이 적을수록 "좋은" 알고리즘이다. 같은 일을 하는데 월급도 적게 받고, 듀얼 모니터 사달라는 소리도 안하는 직원을 회사가 좋아하는 것 처럼... (심지어 컴퓨터는 박봉으로 영혼까지 빨아먹는다고 불평도 퇴사도 안한다! 안심하고 착취가 가능하다!!!) 그래서 좋은 Algorithm을 평가하.. 2025. 4. 13.
Levenshtein distance (Edit distance) 정의한 단어를 다른 하나로 바꾸기 위해 글자를 수정(edit)해야 하는 횟수를 계산하여 유사도를 판단하는 것을 edit distance라고 한다. edit operation을 어디까지 1개로 볼 것인가에 따라 여러가지 알고리즘이 있는데 Levenshtein에서는 글자의 삽입(insertion), 제거(deletion), 대체(substitution) 3가지를 1번의 edit으로 본다. 예를 들면, lev(”hello”, “shallow”) = 3이다.insertion 2번 (제일 앞에 s 추가, 마지막에 w 추가)과 substitution 1번 (e→a) 직관적으로 값을 구하는 것은 쉽지만, 어떻게 코드로 어떻게 구현해야할지 언뜻 생각해보면 꽤나 생각해볼 게 많은 문제임을 알 수 있다. 아래는 엄밀하게 .. 2024. 8. 28.