분류 전체보기 290

Problem 6. 1 ~ 100까지의 합의 제곱과 제곱의 합의 차이

Project Euler - Problem 6. The sum of the squares of the first ten natural numbers is,12 + 22 + ... + 102 = 385The square of the sum of the first ten natural numbers is,(1 + 2 + ... + 10)2 = 552 = 3025Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640. Find the difference between the sum of the squares of the first ..

Problem 5. 1 ~ 20 사이의 수로 나누어 떨어지는 가장 작은 수

Project Euler - Problem 5. 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? - 2520은 1에서 10 사이의 수 중 어떤 수로 나누더라도 나누어 떨어지는 수 입니다. 양수 중 1부터 20까지의 모든 수로 나누어 떨어질 수 있는 가장 작은 수는 무엇일까요?- 1 ~ 20까지의 최소공배수를 구하는 문제입니다. 유클리드 호제법1. 큰 수에서 작은 수를 나눈 나머지를 구합니다...

Problem 4. 두 개의 세 자리 숫자를 곱해서 만들 수 있는 가장 큰 대칭수는?

Project Euler - Problem 4. A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. Find the largest palindrome made from the product of two 3-digit numbers. - 대칭수는 앞으로 읽어도, 뒤로 읽어도 똑같은 숫자를 말합니다. 두 개의 두 자리 숫자를 곱해서 만들 수 있는 가장 큰 대칭수는 9009 입니다. (9009 = 91 x 99) 그렇다면, 두 개의 세 자리 숫자를 곱해서 만들 수 있는 가장 큰 대칭수는 얼마일까요?

Problem 2. 피보나치 수열 중 4백만 이하 짝수의 합

Project Euler - Problem 2. Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. - 피보나치 수열은 이전 두개의 수열의 합이다. 1과 2부터 시작해서 10번의 피보나치 수열의 결과는 1, ..

Problem 1. 3, 5의 배수 중 1000보다 작은 자연수의 합은?

Project Euler - Problem 1. If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. - 10보다 작은 자연수 중 3과 5의 배수로는 3, 5, 6, 9가 있다. 이를 모두 합하면 23이다. 1000보다 작은 3과 5의 배수의 합은? 등차수열을 이용해서 풀면 속도도 빠르고 효율도 좋지만 생각나는대로 풀어봤습니다...

정렬 알고리즘의 비교

정렬 알고리즘의 성능 비교 알고리즘 최선 평균 최악 삽입 정렬 O(n) O(n^2) O(n^2) 선택 정렬 O(n^2) O(n^2) O(n^2) 버블 정렬 O(n^2) O(n^2) O(n^2) 쉘 정렬 O(n) O(n^1.5) O(n^1.5) 퀵 정렬 O(nlog 2n) O(nlog 2n) O(n^2) 힙 정렬 O(nlog 2n) O(nlog 2n) O(nlog 2n) 합병 정렬 O(nlog 2n) O(nlog 2n) O(nlog 2n) 기수 정렬 O(dn) O(dn) O(dn) - 최적의 정렬 방법은 정렬해야 할 데이터의 수, 크기, 타입에 따라 달라지므로 정렬 방법들의 장단점을 잘 이해하여 적합한 정렬을 사용할 수 있어야 합니다. 정렬 알고리즘별 실험 결과 - 정수 60000개 정렬 알고리즘 실행시간..

정렬 - 기수정렬

기수정렬 (Radix Sort) 이때까지의 정렬 방법들은 모두 레코드들을 비교하여 정렬했습니다. 따라서 비교가 불가능한 레코드는 정렬할 수 없었습니다. 기수정렬은 레코드를 비교하지 않고도 정렬하는 방법입니다. - 입력 데이터에 대해 어떠한 비교 연산도 실행하지 않고 데이터를 정렬할 수 있는 기법 기수란 숫자의 자리수입니다. - 예를 들면 숫자 42는 4와 2의 두개의 자리수를 가지고 이것이 기수가 됩니다. 기수정렬은 이러한 자리수의 값에 따라 정렬을 하기 때문에 기수정렬이라는 이름을 얻었습니다. {8, 2, 3, 7, 5} 를 정렬하기 위해 10진수라는 점을 착안하여 10개의 버킷을 만들고 입력 데이터를 각 자리수의 값에 따라 상자에 넣습니다. 그리고 각 왼쪽 상자부터 순차적으로 버킷 안에 들어있는 숫자..

정렬 - 힙 정렬

힙 정렬 (Heap Sort) 최대/최소 힙을 이용한 정렬 방법으로 내림차순 정렬을 하려면 최대 힙을, 오름차순 정렬을 하려면 최소 힙을 이용한 정렬입니다. 그렇다면 힙(Heap)은 무엇일까요? 힙의 개념 힙(Heap)을 영어사전에서 찾아보면 "더미"라고 되어 있습니다. 컴퓨터 분야에서의 힙은 완전이진트리 기반의 "더미"와 모습이 비슷한 자료구조를 말합니다. 힙은 여러 개의 값들 중에서 가장 큰 값이나 가장 작은 값을 빠르게 찾아내도록 만들어진 자료구조 입니다. - 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 이진트리를 말합니다. - Key(A) >= Key(B) - 힙은 중복된 값을 허용합니다. 최대 힙 : Key(부모노드) >= Key(자식노드) 최소 힙 : Key(부모노드)

정렬 - 퀵 정렬

퀵 정렬 (Quick Sort)퀵 정렬, 말 그대로 빠른 정렬입니다. 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법으로 퀵 정렬도 합병 정렬처럼 분할-정복(Divide & Conquer) 방식을 사용합니다. 하지만, 합병정렬과는 다르게 퀵 정렬은 리스트를 비균등하게 분할합니다. 1. 리스트 안에 한 요소를 피벗으로 선택한다. 대체로 첫 번째 요소를 피벗으로 선정합니다. 2. 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로, 큰 요소들은 오른쪽으로 옮깁니다. 3. 피벗을 제외한 왼쪽과 오른쪽의 리스트들을 대상으로 1~2의 과정을 반복해 정렬을 완료합니다. 위 그림의 마지막 상태는 피벗 5를 기준으로 왼쪽 리스트는 피벗보다 작은 데이터, 오른쪽 리스트는 피벗보다 큰 데이터들로 구성되어 리스트가 분할된 것..