Algorithm_JavaScript '22.02.14.Mon 로또 번호 맞추기 2 들어가며 강사님께서 과제로 내주신 로또 번호 맞추기 코드를 짜보았다. 사실 로또 번호를 무작위로 뽑아내거나 로또 번호가 담긴 배열과 사용자 번호를 대조하는 코드는 비교적 간단히 작성했으나, 사용자 입력값의 유효성을 검증하고 사용자 번호 배열을 input.value에서 가져오는 기능을 구현하기까지 애를 먹었다. 일단 잘 돌아가게 만드는 데 중점을 둬서 가독성 좋게 작성할 겨를이 없었던 점 양해... '22.02.algorithmJavaScriptAlgorithm_JavaScript'22.02. 재귀 알고리즘(Recursive Algorithms) 재귀 함수도 이와 마찬가지로 주어진 조건을 충족할 때까지 함수 자신의 크기를 줄여가다 조건을 충족하면 결과값을 반환하는 함수이다. 위 코드는 주어진 배열의 길이만큼 for문으로 주어진 배열을 탐색하여 배열 내 모든 값의 합을 반환하는 함수이다. 이 함수를 살펴보면 배열 index 0부터 끝까지 탐색하며 값을 하나하나 더해나가는 것을 알 수 있다. 일정 조건 하에 반복 작업을 수행하는 함수라면... Algorithm_JavaScriptrecursive algorithmsJavaScriptalgorithm'22.03.재귀 알고리즘'22.03. 하노이의 탑(Towers of Hanoi) 이번 글은 아래 자료들을 참고하여 작성하였습니다. 하노이의 탑을 풀기 위해서는 우선 재귀 함수에 대한 이해가 필요하다. 재귀 함수는 javascript의 일반적인 동작 방식인 명령형(Imperative)이 아니라 선언형(declarative)으로 동작한다. 따라서 재귀 함수를 온전히 이해하려면 declarative programming에 대한 감각이 필요하다. 재귀 함수를 짤 때 중요한 것은... towers of hanoiAlgorithm_JavaScript하노이의 탑JavaScriptalgorithm'22.03.'22.03. 중간 노드 찾기(Find the Middle Node) 아래 링크의 강의 중 Section 22. Find the Midpoint의 내용을 추려 이번 글을 작성하였습니다. linked list를 한 칸씩 탐색하는 변수 slow와 두 칸씩 탐색하는 변수 fast를 각각 선언한다. fast로 탐색을 하다 더 이상 탐색값이 없다면(null) while문을 멈추고 linked list의 중간값인 slow를 반환한다.... Algorithm_JavaScriptJavaScriptalgorithmfind the middle nodelinked list'22.02.'22.02. 큐(The Queue) 아래 링크의 강의 중 Section 17. The Queue의 내용을 추려 이번 글을 작성하였습니다. Queue란? 선입선출(FIFO) 방식으로 작동하는 일련의 데이터 모음이다. 아래 그림을 보면 알 수 있듯 새로이 선언한 q에 add method로써 1과 2를 추가하면 1 뒤에 2가 추가된다. 여기서 q.remove() method를 입력하면 먼저 들어온 1부터 data에서 제거하는 걸 볼... JavaScriptqueuealgorithm'22.02.Algorithm_JavaScript'22.02.
'22.02.14.Mon 로또 번호 맞추기 2 들어가며 강사님께서 과제로 내주신 로또 번호 맞추기 코드를 짜보았다. 사실 로또 번호를 무작위로 뽑아내거나 로또 번호가 담긴 배열과 사용자 번호를 대조하는 코드는 비교적 간단히 작성했으나, 사용자 입력값의 유효성을 검증하고 사용자 번호 배열을 input.value에서 가져오는 기능을 구현하기까지 애를 먹었다. 일단 잘 돌아가게 만드는 데 중점을 둬서 가독성 좋게 작성할 겨를이 없었던 점 양해... '22.02.algorithmJavaScriptAlgorithm_JavaScript'22.02. 재귀 알고리즘(Recursive Algorithms) 재귀 함수도 이와 마찬가지로 주어진 조건을 충족할 때까지 함수 자신의 크기를 줄여가다 조건을 충족하면 결과값을 반환하는 함수이다. 위 코드는 주어진 배열의 길이만큼 for문으로 주어진 배열을 탐색하여 배열 내 모든 값의 합을 반환하는 함수이다. 이 함수를 살펴보면 배열 index 0부터 끝까지 탐색하며 값을 하나하나 더해나가는 것을 알 수 있다. 일정 조건 하에 반복 작업을 수행하는 함수라면... Algorithm_JavaScriptrecursive algorithmsJavaScriptalgorithm'22.03.재귀 알고리즘'22.03. 하노이의 탑(Towers of Hanoi) 이번 글은 아래 자료들을 참고하여 작성하였습니다. 하노이의 탑을 풀기 위해서는 우선 재귀 함수에 대한 이해가 필요하다. 재귀 함수는 javascript의 일반적인 동작 방식인 명령형(Imperative)이 아니라 선언형(declarative)으로 동작한다. 따라서 재귀 함수를 온전히 이해하려면 declarative programming에 대한 감각이 필요하다. 재귀 함수를 짤 때 중요한 것은... towers of hanoiAlgorithm_JavaScript하노이의 탑JavaScriptalgorithm'22.03.'22.03. 중간 노드 찾기(Find the Middle Node) 아래 링크의 강의 중 Section 22. Find the Midpoint의 내용을 추려 이번 글을 작성하였습니다. linked list를 한 칸씩 탐색하는 변수 slow와 두 칸씩 탐색하는 변수 fast를 각각 선언한다. fast로 탐색을 하다 더 이상 탐색값이 없다면(null) while문을 멈추고 linked list의 중간값인 slow를 반환한다.... Algorithm_JavaScriptJavaScriptalgorithmfind the middle nodelinked list'22.02.'22.02. 큐(The Queue) 아래 링크의 강의 중 Section 17. The Queue의 내용을 추려 이번 글을 작성하였습니다. Queue란? 선입선출(FIFO) 방식으로 작동하는 일련의 데이터 모음이다. 아래 그림을 보면 알 수 있듯 새로이 선언한 q에 add method로써 1과 2를 추가하면 1 뒤에 2가 추가된다. 여기서 q.remove() method를 입력하면 먼저 들어온 1부터 data에서 제거하는 걸 볼... JavaScriptqueuealgorithm'22.02.Algorithm_JavaScript'22.02.