일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- generic class
- python
- BFS
- 암호학
- jsp
- 크루스칼
- DB
- MVC
- cloud computing
- JDBC
- Queue
- 클라우드 컴퓨팅
- 코딩테스트
- dfs
- 공개키 암호화
- 가상컴퓨팅
- 코테
- 자료구조
- javascript
- Algorithm
- Java
- JPA
- spring
- dbms
- sql
- data structure
- Stack
- 생성자
- 알고리즘
- 자바의정석
- Today
- Total
목록전체 글 (128)
PLOD
순차 탐색(sequential Search)선형 탐색이라고도 불린다. 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다 .적용리스트가 아무리 많아도 시간만 충분하다면 항상 원하는 원소를 찾을 수 있다는 장점이 있다. 순차 탐색은 이름처럼 순차로 데이터를 탐색한다는 의미이다. 정렬되지 않은 데이터나 작은 데이터 셋을 탐색해야 할 때 간단히 구현 가능하다.시간복잡도는 O(n)이다.ex) 순차탐색으로 이름 리스트에서 원하는 이름의 순서 찾기#sequential_searchdef sequential_search(n,target,array) : for i in range(n) : if array..
정렬(sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 프로그램에서 데이터를 가공할 때 오름차순이나 내림차순 등으로 대부분 어떤 식으로든 정렬해서 사용하는 경우가 많기에 정렬 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나다. 정렬 알고리즘으로 데이터를 정렬하면 이진탐색(binary search)가 가능해진다. 파이썬에서 버블정렬, 선택정렬 알고리즘을 사용하는 것보다 sort()함수와 sorted()함수가 O(NlogN)의 시간 복잡도를 보장해주기 때문에 더 효율적이지만, 간혹 수기로 코딩테스트를 보거나 직접 정렬 알고리즘을 아는지 물어보는 경우가 있기 때문에 알고 있는 것이 좋다1. 선택 정렬(selection sorting)컴퓨터가 데이터를 정렬할..
자바 언어의 특징 1. 운영체제에 독립적이다. JVM(java virtual machine)이 있기 때문에 JVM 이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달 2. 객체지향언어이다. Ⅰ.코드의 재사용성이 높다 Ⅱ. 코드의 관리가 용이하다 Ⅲ. 신뢰성 높은 프로그래임을 가능하게 한다) Java는 캡슐화, 상속, 추상화, 다형성이 잘 적용되어 있다. 3. 비교적 배우기 쉽다 4. 자동 메모리 관리 garbage collector가 자동적으로 메모리를 관리해주기 때문에 프로그래머가 따로 메모리를 관리해줄 필요가 없다 5. 네트워크 분산처리를 지원한다. 6. multi-thread를 지원한다. 7. dynamic loading을 지원한다. 자바 언어의 특징 변수(..
1. 흐른 시간 계산 2시 5분에서 4시 1분이 되려면 몇 분이 흘러야 하는지를 어떻게 계산해 볼 수 있을까? 단순히 다음과 같이 2시 5분에서 시작하여 1분 단위로 시뮬레이션을 하며 60분이 되면 시간을 늘리고 분을 다시 0으로 맞추는 식으로 진행해볼 수 있다. hour, mins = 2, 5 elapsed_time = 0 while True: if hour == 4 and mins == 1: break elapsed_time += 1 mins += 1 if mins == 60: hour += 1 mins = 0 print(elapsed_time) 2. 흐른 날짜 계산 2월 5일에서 4월 1일이 되려면 몇 일이 흘러야 하는지를 어떻게 계산해 볼 수 있을까? 윤년이 아니라고 가정하고 2월 5일에서 시작하..
가상화(virtualization) 클라우드 컴퓨팅에서 실행되는 하드웨어로부터 소프트웨어(OS,APP)을 분리하는 프로세스를 말한다 .가상화는 소프트웨어를 특정 디바이스에서 실행할 필요 없이 원하는 디바이스에서 실행할 수 있게 해준다. 회사원들은 보통 개인 디바이스(laptop,cellphone)에서 회사 desktop의 원격 버전에 엑세스 할 때 사용한다. it 전문가는 가상 컴퓨터 , 가상 애플리케이션, 스토리지, 네트워크 , 서버에서도 가상화를 사용한다. 따라서 가상화는 프로세스이며 이 프로세스를 사용하여 만든 VM(virtual machine)은 소프트웨어를 사용하여 하드웨어를 정의하는 기술이다. 대표적인 프로그램으로는 ubuntu와 VMware가 있다. VDI(virtual desktop inf..
정렬이란 이름 , 학번 , 키 등 핵심 항목의 대소 관계에 따라 데이터 집합을 일정한 순서로 나열하는 작업을 말한다. 정렬 알고리즘을 이용해 데이터를 정렬하면 검색을 더 쉽게 할 수 있다. 값이 작은 데이터를 앞 쪽에 놓으면 오름차순 정렬, 반대로 놓으면 내림차순 정렬이라고 한다. 정렬 알고리즘의 핵심 요소는 교환,선택,삽입이다. 대부분의 정렬 알고리즘은 이 3가지 요소를 응용한 것이다. 1. 버블 정렬 버블 정렬은 이웃한 두 요소의 대소 관계를 비교하고 필요에 따라 교환을 반복하는 알고리즘으로 단순 교환 정렬이라고도 한다. 먼저 자료 7을 4와 교환하고 다음에 7과 5을 교환하고 7과 1을 교환하고 7과 4을 교환한다. 첫번째 과정을 수행하면 가장 큰 원소가 끝에 배치되게 된다. 두번째로 4와 5를 비..