전체 글
-
[python]삽입 정렬Programming/python 2019. 10. 16. 01:39
삽입 정렬(Insertion sort)이란? 앞에 요소를 살펴보고 그 값보다 작은 지 큰 지를 비교해 적당한 위치에 삽입해서 정렬하는 방법. 리스트 중에 두 번째 요소를 key값으로 한다. 그 앞에 값과 키값을 비교한 뒤 작으면 그 앞, 크면 그 뒤에 넣는다. 그 다음 요소(세 번째)를 key값으로 한다. 그 앞에 값(두번째 요소)와 키 값을 비교한 뒤 작으면 앞 크면 그 뒤에 넣는다. 계속해서 반복한다. 직관적으로 이미지를 보면서 예를 들어보자면 다음과 같다. (a)옆에 [3,7,2,5,1,4]라는 배열이 있다. 가장 앞에 값인 3을 제외하고 두 번째 값인 7을 키 값으로 설정한다. 빨간색 박스는 key값이라는 뜻이다. 이 key값인 7은 3과 비교해서 더 큰 값이므로 3 뒤에 위치하게 된다. (b)다..
-
[python]선택 정렬Programming/python 2019. 10. 15. 00:16
선택 정렬(Selection sort)이란? 리스트 중에서 가장 작은 걸 선택한 뒤에 가장 앞으로 보내면서 정렬하는 방법. 리스트 중에 최소값을 찾는다. 그 값을 맨 앞에 값과 교체한다. 맨 앞의 값을 제외하고 다시 검색해서 최소값을 찾는다. 맨 앞의 값 뒤에 값과 최소값을 교체한다. 차례로 반복 직관적으로 애니메이션 이미지를 보면서 예를들어보자. 옆에 [8,5,2,6,9,3,1,4,0,7]이라는 배열이 있다. 가장 처음에 앞에서부터 찾아가며 최소값 0을 찾아내고 이를 맨 앞에 있는 0과 교환한다. [0,5,2,6,9,3,1,4,8,7] 그 다음에 0을 제외하고 검색을 시작하고 최소값 1을 찾아낸 뒤에 5와 1을 교환한다. [0,1,2,6,9,3,5,4,8,7] 그 다음에 0,1을 제외하고 검색을 시작하..
-
프레임워크와 라이브러리의 차이점Programming 2019. 10. 12. 02:00
프레임워크도 알고있고, 라이브러리도 알고있지만 이 둘의 차이점에 대해서는 잘 알지 못하고 넘어가는 경우가 많다. 단순히 API를 모은 게 라이브러리고 라이브러리가 모여서 프레임워크가 되는거 아니야? 라고 말할 수 있지만 사실 그렇게 쉽게 설명되지 않는 문제이다. 프레임워크를 설명할 때 등장하는 다른 여러 개념들이 있기 때문에 이 개념들과 함께 프레임워크를 알아보도록 하자. 프레임워크의 개요 프로그램 개발에 투입되는 개발자들이 늘어남에 따라서(특히 객체 지향 프로그래밍이 늘어남에 따라서) 다양성 또한 비례되어 늘어나고, 전체 시스템의 통합성, 일관성이 부족함을 느끼게 되었다. 그래서 개발자의 자유를 제한하는 대신에 일정한 테두리 안에서 일관되고 유지 보수를 쉽게 개발할 수 있는 환경인 프레임워크를 도입했다..
-
[JAVA]랜덤 난수 만들기Programming/java 2019. 10. 3. 01:31
자바에서 랜덤 난수로 1~n까지의 무작위 값 얻기 기본적으로 자바에서는 0.0에서 0.999999999 즉 1에 가까운 무한소수까지 중에 하나를 랜덤으로 추출해주는 random() 함수를 제공한다 예를 들면 Math.random() \* 5 를 하면 0.0에서 4.999999...의 값을 리턴 받을 수 있다. 여기서 우리는 실수형 double값으로 리턴받는다는 사실을 알 수 있고 int형으로 형변환을 한다면 소수점 이하 자리수는 떨어져 나가고 0~4까지의 랜덤한 값을 리턴받을 수 있다는 점 또한 알 수 있다. 하지만 우리가 원하는 것은 양수, 즉 1이상의 숫자부터라고 한다면? 랜덤해서 나온 값은 1을 넘지 않으므로 그냥 간단하게 뒤에 +1만 붙여주면 된다. 그렇게하면 위에서 예를들은 Math.random..
-
[JAVA 개념알기]변수Programming/java 2019. 9. 30. 22:44
변수 어떤 언어를 배우든 꼭 등장하는 개념이 있다. 바로 이 변수이다. 변수는 말 그대로 변하는 수를 변수라고 수학에서 표현하지만 우리가 배우고자하는 프로그래밍에서는 조금 다르다. 프로그래밍에서 말하는 변수란 메모리상의 공간을 의미한다. 쉽게 비유적으로 생각하면 값을 담는 상자 정도로 이해하면 좋다. 변수는 하나의 값을 저장하는 상자, 메모리상의 공간! 이 변수는 하나의 상자에 하나의 값만이 대응되므로 또 하나를 넣게 된다면 그 변수의 값은 두 개가 되는 것이 아니라 덮어써서 이전의 값은 사라지게 된다. 즉, 하나의 변수에는 단 하나의 값만 저장할 수 있다는 점. 이제 자바에서 변수를 어떻게 사용하는 지 알아보자. 변수의 선언과 초기화 방법 변수를 사용하려면 먼저 변수를 선언해야하는데, 변수의 선언방법은..
-
파이썬으로 배우는 웹 크롤러Review/Book 2019. 9. 22. 17:49
사실 요즘 자바스크립트 node.js를 공부하는 통에 다음 진도를 못나가고있다...다음은 확실히 정해둔 것이 있다. 바로 파이썬이다. 사실 천천히 단계적으로 HTML/CSS -> JAVASCRIPT -> NODE.JS -> PYTHON 순으로 익혀가려다가 혹시나 되려나식으로 신청했던 책 감평 이벤트에 신청하다가 덜컥 붙어버렸다. 그래서 순서가 뒤죽박죽이 되긴했지만 그래도 관심이 있던 터였고 특히 파이썬이라는 언어가 다른 기초지식이 없어도 프로그래밍에 관련된 알고리즘이나 다른 언어들을 몇가지 알고있으면 금방 따라가기 수월하다는 장점이 있어서 책 읽는 것에 있어서는 무리가 없었다. 나에게 파이썬을 배우려는 이유는 크게 두가지가 있다. 하나는 쉽게 배울 수 있고 편하게 적용할 수 있어서 그 접근성에 있어서 큰..