Javascript

1. sort() 함수로 숫자 오름차순 정렬하기

const arr = [2, 1, 3, 10];

arr.sort(function(a, b)  {
  return a - b;
});
document.writeln(arr + '<br>'); // [1, 2, 3, 10]

----------------------------------------------
reulst

1,2,3,10

두 숫자의 차가 양수값이냐, 음수값이냐를 이용하여

숫자를 오름차순으로 정렬하는 예제를 위와 같이 단순화 할 수도 있습니다.

2. includes()

array.includes(searchElement[, startIndex])

var arr = ['apple','banana', 'kwie','blueberry'];

var result = arr.includes("kwie");

console.log(result);


result

true

유클리드 호제법

1. 유클리드 호제법이란?

유클리드 호제법은 두 수의 최대공약수를 구하는 알고리즘이다.

유클리드(Euclid)에 의해 기원전 300년경에 발견된 가장 오래된 알고리즘이다.

호제법이란? 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 말한다.


2. 1112와 695의 최대공약수 계산하기

일반적인 방법

일반적으로 최대공약수를 구하기 위해선 먼저 소인수분해를 해야한다.

1112 = 139 X 2 X 2 X 2

695 = 139 X 5

두 수를 소인수분해한 후, 공통된 소수를 찾으면 된다. 이를 통해 두 수의 최대공약수(GCD)는 139인 것을 알 수 있다.

이 방법은 수가 커질수록 소인수분해하기 어려워진다는 단점이 있다.

이때, 유클리드 호제법을 사용하면 조금 더 효율적으로 최대공약수(GCD)를 구할 수 있다!

유클리드 호제법 사용하기

💡 유클리드 호제법을 이해하기 위해서는 MOD연산에 대해 알고 있어야 한다.
MOD연산이란? 두 값을 나눈 나머지를 구하는 연산!

먼저, 큰 수를 작은 수로 나눈 나머지를 구한다. 즉, MOD 연산을 한다.

1112 mod 695 = 417

그 다음, 나눴던 수와 나머지로 또 MOD 연산을 한다.

695 mod 417 = 278

이 과정을 계속 반복한다.

417 mod 278 = 139
278 mod 139 = 0

나머지가 0이 됐을 때, 마지막 계산에서 나누는 수로 사용된 139가 1112와 695의 최대공약수가 된다.

간단하게 말하면, 유클리드 호제법은 MOD연산을 반복하면 된다!


3. 유클리드 호제법 이해하기

어떻게 유클리드 호제법으로 최대공약수(GCD)를 구할 수 있을까?

1112와 695를 막대의 길이로 표현한 뒤에, 두 수의 최대공약수 N으로 나눠보았다.
위에서 우리는 최대공약수가 139라는 것을 알았기 때문에 8칸, 5칸으로 나누었지만 실제로는 모른다고 생각하면 된다.

하지만, 1112와 695가 최대공약수 N의 배수라는 것은 알고 있다.

위에서 한 대로, 1112와 695를 반복해서 MOD 연산한다.

이 그림을 통해 연산 중에 나온 나머지
417, 278, 139도 모두 N의 배수인 수라는 것과 같은 최대공약수를 가진다는 것을 알 수 있다.

278은 139로 나누어지므로 나머지가 0이 된다.
이때, 최대공약수 N이 139라는 것을 알 수 있다.


유클리드 호제법은 나눗셈만 반복해서 최대공약수(GCD)를 구할 수 있다.

두 개의 수가 아무리 커도 정해진 순서로 계산하면 효율적으로 최대공약수를 구할 수 있다.

profile
i'm groot

0개의 댓글