본문 바로가기

자료실 전체보기35

프로그래밍 언어란 일단 프로그래밍 언어는 컴퓨터가 알아 들을 수 있는 언어를 칭한다 예를 들어 토종 미국인에게 알아듣게 말을 하려면 영어로 , 일본인에게는 일본어로 말하듯이 컴퓨터도 컴퓨터의 언어로 말을 해야 알아 듣는다. 컴퓨터의 시스템은 스스로 인식 할 수 있는 명령어들로 이루어진 프로그램에 의하여 동작되며 여기서 사용하는 프로그래밍 언어는 프로그램을 작성하기 위한 인공적인 언어이다. 크게 프로그래밍 언어를 저급언어(Low level), 고급언어(High leve)로 나눌수 있는데 언어가 싸구려라서 저급이 아니고 시대적이고 편리함에 따라서 분류를 한것이다. - 저급언어 ex) 기계어(01010101011), 어셈블리어(mov ax...) - 고급언어 ex) python, java, C++ , C -> 시대에 따라서 중.. 2020. 9. 11.
알고리즘의 효율성, 시간복잡도 (Big-O) notation 알고리즘의 효율성은 - 알고리즘의 수행시간 (시간복잡도, Time Complexity) - 수행하는동안 사용되는 메모리 공간의 크기 (공간복잡도, Space complexity) 로 나타낼 수 있다. 사용되는 메모리, 공간등은 주어진 환경에 따라서 다르기 때문에 보통 알고리즘을 비교할때는 시간복잡도로 표현한다. 시간복잡도는 알고리즘의 수행하는 기본적인 연산의 횟수를 입력의 크기에 대한 함수로 표현한다. ex) 크기가 N인 데이터를 순차적으로 비교 한다면 총 비교 횟수는 (N-1)이 되므로 크기가 N인 순차적인 알고리즘의 시간복잡도는 (N-1)이다. 시간복잡도는 표현할때는 3가지의 분석 방법이 주어지는데 1. 최악의 경우 분석 (Worst Case Analysis) 2. 평균의 경우 분석 (Averge C.. 2020. 9. 10.
최초의 알고리즘 가장 오래된 알고리즘은 A.C 300년 전에 만들어진 유클리드의 최대공약수를 찾는 알고리즘으로 알려져 있다. 최대공약수(GCD) : 2개 이상의 자연수들의 공통된 약수중 가장 큰 수 유클리드는 2개의 자연수의 최대공약수를 구하기 위해 큰 수에서 작은 수를 뺀 수 작은수와의 최대공약수는 같다 라는 성질을 이용하여 최대공약수를 찾았다. ex) 24와 14의 최대공약수 (큰수 : 24, 작은수 :14) 큰수 - 작은 수 :: 24 - 14 = 10 > 10과 작은수(14)와의 최대 공약수는 같다 >> 이 과정에서 다시 큰수는 14, 작은수는 10으로 swap되며 소분해 나갈때 0을 제외한 나머지 수가 두 수의 최대 공약수 이다. 최대공약수 ( n, 0 ) = n 2020. 9. 10.
알고리즘이란 알고리즘이라는 이름은 페르시아 수학자인 '알콰리즈미'로부터 유래 되었다고 한다. 이건 별로 기억할 필요는 없고 여러 의미를 가지고 있는것 같은데 내가 생각하는 알고리즘은 문제를 해결하는 단계적인 절차, 또는 방법이라고 생각한다. 여기서 문제를 해결하기 위한 도구는 컴퓨터이며 여기서 입력이 주어지며 알고리즘을 통해 결과를 출력 받는다. 알고리즘의 특성으로는 1. 정확성 > 알고리즘은 주어진 입력에 대하여 올바른 정답만을 도출해 내어야 하며 오답을 뱉을시 이는 알고리즘이라고 할 수 없다. 2. 수행성 > 알고리즘의 각 단계는 코드는 컴파일러에 의하여 기계어로 번역이 가능하며 수행이 되어야 한다. 즉 컴퓨터가 알아먹을 수 있는 언어로 작성되어야 한다는 말이다. 3. 유한성 > 알고리즘은 일정한 시간내에서 종료.. 2020. 9. 10.
프로그래머스 자바 전화번호 목록 public static boolean solution(String[] phone_book){ for (int i = 0; i phone_book[j].length(.. 2020. 9. 10.
피보나치 수열 함수 코딩, 알고리즘, Fibonacci Algorithm 코드 앞서배운 팩토리얼 코드에서 재귀함수에 대해서 알아보았는데요 자기 자신을 호출하는 재귀 호출은 피보나치 수열의 알고리즘에서도 사용됩니다. 피보나치 수열은 앞의 두항을 합친 값이 다음 항이 되는 수열 입니다. 처음에 1부터 시작한다고 하면 1, 1, 2, 3, 5, 8, 13, 21.... 이런식으로 나타낼 수 있습니다. 한 7, 8번째 항까지는 손으로도 쉽게 구할 수 있을텐데 피보나치수열의 30번째 항을 구하라고 한다면 ? 손으로는 약간 무리가 올거같고 그렇다고 못할것도 없어서 노가다를 뛰어서 구했는데 계산 실수라도 해서 잘못구하면 마음이 많이 쓰라릴거같습니다. 그래서 피보나치수열을 일반항 공식을 사용해서 구하자니 이거 우리가 중,고등학교때 배운 그런 쉬운 공식이 아닌데요 피보나치 수열의 일반항은 입니다... 2020. 2. 25.
'20. 02. 25 마음이 아프다 돈쓰는건 이렇게 쉬운데 버는건 왜이렇게 힘들까 나는 25일이 싫다 다음달 25일에도 내가 생존해 있기를................................... 2020. 2. 25.
팩토리얼 함수 코딩, 알고리즘 ,Factorial Algorithm (재귀함수) 앞에서는 반복함수로 팩토리얼 알고리즘을 구현하였는데 이번에는 재귀함수를 사용하여 팩토리얼을 구해보도록 하겠습니다. 그림이 이해가 되셨으면 좋겠네요 재귀함수, 재귀호출 이라고 하며 여기서 재귀는 자기 자신을 포함하고 다시 자기 자신을 사용한다 이런 느낌을 재귀적이라고 합니다. 무슨말인지 모르시겠다면 그게 맞는겁니다. 나는 나고 나라는건 나야 재귀적으로 자신을 말할때 저렇게 말할 수 있게됩니다. 무슨말인지 모르시겠다면 그게 맞는겁니다. 즉 자기 자신을 포함하는 것이라고 생각하시면 편할것 같습니다. 팩토리얼을 설명하는데 왜 재귀함수를 이야기하는지 모르시겠다구요? 여기서 팩토리얼의 공식을 조금 더 자세히 살펴보겠습니다. 이해를 돕기위해 n > 5 라고 가정할시 n! = n*(n-1)*(n-2)*(n-3)...... 2020. 2. 24.