본문 바로가기

스크래치50

스크래치COS-이진검색 스크래치 COS -이진검색 스크래치COS 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다. 코딩에서 가장 기본이 되는 알고리즘 중 검색 알고리즘에 대해 알아보겠다. 이전 글에 선형검색에 대해서 알아보았다. 스크래치COS-선형검색 이제는 이진검색에 대해서 알아보겠다. 이진검색은 리스트의 데이터가 먼저 정렬이 되어 있어야 한다. 정렬된 데이터를 기준으로 반을 나누어 가면서 검색한다. 아래 만일 9를 찾는다고 하면 7개의 데이터 수에서 반의 위치는 4와 찾고자 하는 값 9와 비교를 한다. num : 정렬된 리스트 n = 9 if num(4) < n (7 < 9, true) 오른쪽의 데이터에서 찾을 것이다. 1 3 5 7 9 11 13 i if num(6) < n (11 < 9, f.. 2022. 8. 12.
스크래치COS-퀵정렬 스크래치 COS -퀵정렬 스크래치COS 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다. 코딩에서 가장 기본이 되는 알고리즘 중 또다른 것은 정렬이다. 때로는 빠른 검색을 위해 정렬이라는 절차를 수행할 필요가 있다. 이번 글에서는 퀵정렬 알고리즈을 스크래치로 구현해볼 것이다. 퀵정렬 알고리즘의 작동 방법은 divide and conquer로 이루어진다. divide는 pivot을 선택하고, pivot보다 작으면 왼쪽으로, 큰 값은 오른쪽으로 나눕닏. conquer는 왼쪽에 있는 리스트와 오른쪽에 있는 리스트를 정렬한다. 퀵정렬 예제로 리스트 {21 12 4 2 7} 가 있다. 마지막 갑을 piivot으로 잡는다. 여기서는 7를 pivot으로 잡고 작은 갑은 왼쪽으로 큰 값은 .. 2022. 8. 11.
스크래치COS-선택정렬 스크래치 COS -선택정렬 스크래치COS 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다. 코딩에서 가장 기본이 되는 알고리즘 중 또다른 것은 정렬이다. 때로는 빠른 검색을 위해 정렬이라는 절차를 수행할 필요가 있다. 이번 글에서는 선택 정렬 알고리즈을 스크래치로 구현해볼 것이다. 선택 정렬은 데이터들 중에서 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해 나가는 방식이다. 선택이란 용어를 사용한 것은 가장 작은 데이터를 선택하여 위치를 정한다는 개념으로 사용한 것 같다. 요구사항 리스트에 10개의 숫자를 1~100 사이의 난수를 발생하여 삽입한다. 그리고 선택 정렬 알고리즘을 활용하여 리스트를 정렬한다. 아래는 선택정렬 알고리즘의 예시이다. 먼저 숫자들 중에서 가장 작은.. 2022. 8. 10.
스크래치COS-버블정렬 스크래치 COS -버블정렬 스크래치COS 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다. 코딩에서 가장 기본이 되는 알고리즘 중 또다른 것은 정렬이다. 때로는 빠른 검색을 위해 정렬이라는 절차를 수행할 필요가 있다. 이번 글에서는 버블 정렬 알고리즈을 스크래치로 구현해볼 것이다. 그 중에서 버블정렬은 서로 이웃한 데이터들을 비교하여 가장 큰 데이터를 맨 뒤로 보내는 정렬 방식으로 데이터 수가 적을 때 효율적이다. 그러나 거의 정렬되어 있지 않을 때는 비효율적이다. 요구사항 리스트에 10개의 숫자를 1~100 사이의 난수를 발생하여 삽입한다. 입력한 리스트의 숫자값들 중에서 검색하기 위해 숫자를 입력하고 해당 숫자를 검색한다. 일 예로 아래와 같이 5개의 수가 있다고 해보자... 2022. 8. 9.