-
[알고리즘/자바스크립트] 재귀를 이용한 "음이 아닌 정수의 자릿수근" 구하기 (Sum of Digits / Digital Root)Algorithm 2019. 6. 8. 22:33
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] In this kata, you must create a digital root function. A digital root is the recursive sum of all the digits in a number. Given n, take the sum of the digits of n. If that value has more than one digit, continue reducing in this way until a single-digit number is produced. This is only applicable to the natural numbers. Here's how ..
-
[알고리즘/자바스크립트] 재귀를 이용한 배열 요소 개수 구하기 (Array Deep Count)Algorithm 2019. 6. 7. 23:56
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] Array.prototype.length will give you the number of top-level elements in an array. Your task is to create a function deepCount that returns the number of ALL elements within an array, including any within inner-level arrays. deepCount([1, 2, 3]); //>>>>> 3 deepCount(["x", "y", ["z"]]); //>>>>> 4 deepCount([1, 2, [3, 4, [5]]]); //>>..
-
[알고리즘/자바스크립트] 중복값 없는 랜덤 숫자 추출하는 여러가지 방법 / 로또번호 생성기Algorithm 2019. 6. 3. 15:16
Math.random() 자바스크립트의 Math.random() 메소드가 뭔지 MDN에서 살펴보면 0(포함)보다 크고 1(불포함)보다 작은 랜덤 숫자를 부동 소수점(floating-point)으로 반환하는 함수라고 되어있다. 여기서 부동 소수점이란 무엇일까? 컴퓨터에서 실수를 표현하는 것은 정수를 표현하는 것보다 훨씬 복잡하다. 왜냐면 실수 또한 2진수로 표현해야하기 때문이다. 실수로 표현하는 방식은 두 가지가 있는 데, 바로 고정 소수점(fixed point) 방식과 부동 소수점(floating point) 방식이다. 실수는 정수 부분과 소수 부분으로 나눠진다. 이 때 실수를 표현하는 가장 간단한 방법은 소수부의 자릿수를 미리 정하여 표현하는 방법이다. 이 것이 고정 소수점 방식이다. 고정 소수점 방식..
-
[알고리즘/C언어] 도형 알고리즘 / 직각삼각형 채우기 (정보처리기사, 실기)Algorithm 2019. 5. 25. 21:23
직각삼각형 숫자 채우기 (1) 1 0 0 0 0 2 3 0 0 0 4 5 6 0 0 7 8 9 10 0 11 12 13 14 15 직각삼각형 모양으로 숫자 채워넣는 문제는 먼저 표로 행과 열의 인덱스 번호를 써보면 쉽게 만들 수 있다. i (row) j (column start) j (column end) 1 0 0 0 0 0 0 0 2 3 0 0 0 1 0 1 4 5 6 0 0 2 0 2 7 8 9 10 0 3 0 3 11 12 13 14 15 4 0 4 일단 위 표와 같이 행의 인덱스 번호는 0 1 2 3 4 이다. 숫자가 써지는 영역의 시작 인덱스는 0으로 고정이고 끝 인덱스는 행의 인덱스 번호와 동일하게 0 1 2 3 4 로 1씩 증가한다. 0행일 때, 열 번호가 0번부터 0번일 때까지 숫자가 써..
-
[알고리즘/C언어] 도형 알고리즘 / 사각형 ㄹ자 채우기 (정보처리기사, 실기)Algorithm 2019. 5. 24. 21:42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 지난번에 배열을 정리하면서 사각형 모양으로 숫자를 출력하는 코드를 정리했었다. (단 주의해야할 것은 아래 코드는 0행 0열이 아닌 1행 1열부터 숫자를 채운 코드이다.) #include #define NUM 5 int main() { int row, col, i, j, k = 0; int arr1[NUM + 1][NUM + 1] = { 0 }; //사각형 도형 채우기 printf("-----------------------\n"); for (row = 1; row
-
[C언어/Day3] C언어 수업정리 - 배열 기초 (정보처리기사, 실기)Backend 2019. 5. 22. 22:00
좁은 서울 땅 덩어리에 미국처럼 단독주택만 짓는다면 어떨지 상상해보자. 집 짓는 데 시간도 오래 걸리고 효율도 매우 떨어질 것이다. 그런데 여러 명을 한 번에 수용할 수 있는 아파트를 지어서 방 한 칸에 1가구 씩 배정한다면 훨씬 효과적으로 주택 공급을 할 수 있을 것이다. 만약에 배열이 없었다면 어떤 데이터 100개를 처리할 때 100개의 변수를 만들고, 그 변수에 100개의 데이터를 각각 할당하여 처리를 해야만 했을 것이다. 얘기만 들어도 비효율적이고 끔찍하다. 그래서 우리는 배열이란 걸 만들어냈는데, 일종의 아파트를 만든 것이다. 그리고 아파트 칸마다 순차적으로 방번호를 부여하고 하나의 데이터를 부여한 것이다. 그리고 우리는 반복문을 사용하여 각각의 방에 든 데이터를 가지고 같은 작업을 여러 번 반..
-
[알고리즘/C언어] 수열의 합 알고리즘(3) / 계차수열의 합 (정보처리기사, 실기)Algorithm 2019. 5. 20. 13:27
1. Sum= 2 + 3 + 5 + 8 + 12 + ... +(NUM항)의 합 #include #define NUM 10 int main() { int cnt, sum = 2, i = 2 , j = 0; for (cnt = 1; cnt < NUM; cnt++) { j = j + 1; i = i + j; sum = sum + i; printf("cnt=%2d, j=%2d, i=%3d, sum=%5d\n", cnt, j, i, sum); } printf("----------반복문 종료-------------\n"); printf("cnt=%2d, j=%2d, i=%3d, sum=%5d\n", cnt, j, i, sum); system("pause"); return 0; } 위 수열은 1씩 증가하는 숫자를 더..