기타지식들/알고리즘 7

피보나치수열 C언어로 구현하기

안녕하세요. 오늘은 피보나치수열을 C언어로 구현해보겠습니다 피보나수열의규칙1) 1로 시작한다2) 처음에 똑같은 두 수가 반복된다3) 연속하는 두 수의 합이 다음에 나타난다4) 수들이 홀수,홀수,짝수로 이루어져 있다 0 -> 1 -> 1 -> 2 -> 3 -> 5 -> 8 -> 13 -> 21.......... 코드로 구현하기1) f(0) = 02) f(1) = 13) f(2) = 14) f(n) = f(n-2) + f(n-1) *n>=2 , Colored By Color Scripter™1234567891011121314151617#include int f(int n){ if(n==0) return 0; else if(n 5 + 3 = 8 f(5) = f(4) + f(3) -> 3 + 2 = 5 f(4)..

알고리즘 순열 C언어로 구현하기

안녕하세요 오늘은 순열의 경우의수를 C언어로 구현해 보겠습니다순열이란 서로다른 n개중 r개를 뽑아서 나열한 경우의 수를 의미합니다 (nPr)예를들어 3P2이라면 경우의 수는 (1,2) (1,3) (2,3) (2,1) (3,1) (3,2)입니다.. 구현방법 (예시3P2)1) 재귀함수 구현 : 함수를 만들고 재귀함수로 사용합니다 2) DFS(Depth First search)사용 DFS(0)함수를 실행하면 DFS(1)가 실행되고 DFS(2)가 실행면 경우의 수를 출력해줍니다재귀함수의 종료 조건은 2인걸 알 수 있습니다 3) 체크리스트 사용 : 1,2,3값들을 사용했으면 1로해줍니다. 중복을 막기 위해 사용합니다 위의 그림을 보면 빨강 네모는 중복입니다. 코드 Colored By Color Scripter™1..

두 숫자 바꾸는 방법,변수교환 방법

안녕하세요 오늘은 두 숫자 바꾸는 방법,변수교환 방법에 대해 알아보겠습니다 예를들어 A,B변수에 값이 들어가 있습니다A = 1B = 2 두 개의 변수의 숫자를 바꾸고 싶습니다A = 2B = 1 그럼 가장 간단한 방법으로 변수를 하나 더 사용하면 됩니다 temp라는 변수에 A값을 저장합니다A변수에 B를 넣습니다B변수에 temp를 넣습니다 간단히 얘기하면 아래의 흐름대로 사용하면 됩니다temp = AA = BB = temp

숫자 내림차순,오름차순 정렬하는 알고리즘

안녕하세요 . 오늘은 숫자 내림치순, 오름차순으로 정렬하는 알고리즘을 알아보겠습니다 . 오름차순 정렬로 한다고 치고, 숫자 3개 A,B,C가 있습니다 첫 번째 숫자와 두 번째 세 번째 숫자를 비교한다음에 첫번째숫자가 더 크면 위치를 바꿉니다두 번째 숫자와 세 번째 숫자를 비교한 다음에 두 번째 숫자가 크면 세 번째 숫자와 위치를 바꿉니다 예시) 오름차순 정렬 5,2,1 스텝1)5, 2와 비교함. 5가 더 크니 숫자를 바꿈 -> 2,5,12와 1을 비교함. 2가 더 크니 숫자를 바꿈 -> 1,5,2 스텝2)5와 2를 비교함. 5가 더 크니 숫자를 바꿈 -> 1,2,5 오름차순 코드 Colored By Color Scripter™12345678910111213141516171819202122232425262..

브루트 포스법이란?

안녕하세요. 오늘은 문자열을 검색하는 알고리즘중에 하나인 브루트 포스법(brute force method)에 대해 알아보겠습니다 문자열검색이란 어떤 문자열이 있으면 그 안에 다른 문자열이 있는지 검사하는 방법을 뜻합니다 ADDABC라는 문자열이 있고 ABC를 검색해보면 검색 성공입니다. ADDABC를 텍스트(TEXT) 라고 하고 ABC를 패턴(PATTERN)이라고 하겠습니다. 문자열 하나씩 옮기다보면 4번째 트라이에 ABC가 일치합니다 이처럼 브루투포스법은 비효율적이고 반복적입니다 실행Colored By Color Scripter™123456789101112131415161718192021222324252627#include int main(void) { char *ch = "ADDABC"; int i;..

세 값의 최대값 구하기 알고리즘

안녕하세요세 개의 정수값중에 최대값을 구하는 알고리즘을 알아보겠습니다. 순서1. 세 개의 수 A,B,C중에 A가 최대라고 가정을 한다.2. MAX(최대를 의미하는 변수)에 A를 넣는다3. MAX와 B를 비교해서 B가 더 크면 MAX에 B를 넣는다4. MAX와 C를 비교해서 C가 더 크면 MAX에 C를 넣는다5. MAX는 최댓값이다 Colored By Color Scripter™12345678910111213141516171819package ec;import java.util.Scanner; public class CA { public static void main(String[] args) { int A = 100; int B = 300; int C = 200; int max = A; // 최댓값을 A..

알고리즘 선형검색(선형탐색)이란?

안녕하세요 선형검색(선형탐색)에 대해 알아보겠습니다 1.선형검색(Linear search) 이란?배열에서 데이터를 탐색하는 알고리즘입니다. 배열의 앞에서부터 차례대로 확인하면 됩니다. 2.예시위와같은 배열이 있을 때, 원하는값을 맨 앞부터 차례대로 찾습니다. 예시1)찾는 값 : 41 -> 아님2 -> 아님3 -> 아님4 -> 맞음 예시2)찾는 값 : 61 -> 아님2 -> 아님3 -> 아님4 -> 아님5 -> 아님찾는값이 6인 경우, 원하는 값이 없습니다. 선형검색의 종료 조건은 2개임을 알 수 있습니다조건 1 : 검색한 값을 찾음조건 2 : 검색한 값을 못찾음 조건1인경우, 검색성공이고 조건2인경우 검색실패입니다. 3.코드 Colored By Color Scripter™123456789101112131..