꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

자바스크립트 35

자료구조와 알고리즘 (정렬) (2)

1.3 선택 정렬 선택 정렬(selection sort)은 배열의 최소값을 검색하여 배열의 왼쪽부터 순차적으로 정렬을 반복하는 정렬 알고리즘입니다. 배열이 미정렬 상태이므로 최솟값 검색에는 이진 검색이 아닌 선형 검색 알고리즘을 사용합니다. 선택 정렬은 버블 정렬보다 빠릅니다. 시간 복잡도: O(n^2) 문제 선택 정렬을 통해 주어진 배열(array)을 정렬하는 함수를 구현하라. 단, 어떠한 빌트인 함수도 사용하지 않고 for 문을 사용하여 구현하여야 한다. function selectionSort(array) { for (let i = 0; i < array.length - 1; i++) { let minIdx = i; for (let j = i + 1; j < array.length; j++) { i..

알고리즘 연습문제 (1~10000의 숫자 중 8이 등장하는 횟수 구하기 / 이상한 문자 만들기)

1. 1 ~ 10,000의 숫자 중 8이 등장하는 횟수 구하기 (Google) 1부터 10,000까지 8이라는 숫자가 총 몇 번 나오는가? 이를 구하는 함수를 완성하라. 단, 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. 예를 들어 8808은 3, 8888은 4로 카운팅 해야 한다. (hint) 문자열 중 n번째에 있는 문자 : str.charAt(n) or str[n] function getCount8() { let str = ''; let result = 0; for (let i = 1; i

다양한 패턴의 제어문 연습

1. 변수 x가 10보다 크고 20보다 작을 때 변수 x를 출력하는 조건식을 완성하라 const x = 15; if (x > 10 && x < 20) { console.log(x); } 2. for문을 사용하여 0부터 10 미만의 정수 중에서 짝수만을 작은 수부터 출력하시오. for (let i = 0; i < 9; i++) { if (i % 2 === 0) console.log(i); } 3. for문을 사용하여 0부터 10 미만의 정수 중에서 짝수만을 작은 수부터 문자열로 출력하시오. let result = ''; for (let i = 0; i < 9; i++) { if (i % 2 === 0) result += i; } console.log(result); 4. for문을 사용하여 0부터 10 미..

if문을 삼항 조건 연산자로 바꾸기

var num = 11; var result; if (num === 0) { res = '영'; } else if (x % 2 === 0) { res = '짝수'; } else { res = '홀수'; } 위 예제는 if문과 else if문, else문으로 구성되어있습니다. 위 예제를 삼항 조건 연산자로 바꾸면 아래와 같습니다. var num = 0; var isZero = num === 0; var isEven = num % 2 === 0; var result = isZero ? '영' : isEven ? '짝수' : '홀수'; 삼항 조건 연산자로 바꿨을 때 첫 예제인 if문 보다 보기 힘들다는 느낌이 들었습니다. 이에 조건문을 따로 변수에 할당하여 개발자에게 좀 더 가독성이 높아지도록 바꿔봤습니다.