본문 바로가기

포트폴리오

(32)
나동빈 실전 알고리즘 5강 - 퀵정렬(Quick Sort) 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 퀵정렬은 대표적인 분할정복 알고리즘중에 하나이다. 분할정렬이란 하나의 특정한 값을 기준으로 양 쪽을 나눠서 정렬하는 것이다. 퀵정렬은 이런 특정한 값을 토대로 두 개의 작은 문제를 푸는 방식으로 해결해 나가는 것이다. blog.naver.com/ndb796/221226813382 5. 퀵 정렬(Quick Sort) 지난 시간까지 다루었던 선택 정렬, 버블 정렬, 삽입 정렬 알고리즘은 모두 시간 복잡도 O(N^2)을 가지는... blog.naver.com 자세한 설명은 나동빈 블로그에서 확인할수 있다. package excercise; public class algorithm { static void quick..
나동빈 실전 알고리즘 4강 - 삽입 정렬(Insertion Sort) 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 이번에는 삽입정렬을 이용하여 다음의 숫자들을 오름차순으로 정렬해보자. 삽입정렬은 앞에서부터 차례대로 봤을 때 적절한 위치에 숫자를 삽입해주는 정렬을 말을한다. 1이 선택되었을때는 가장 작기때문에 10부터 살펴본다. 10은 앞에 있는 숫자들을 봤을때 1 양 옆중에 자신이 들어갈 위치가 오른쪽에 위치해야한다. 5는 앞에 있는 숫자들을 봤을 때 1과 10 사이 중에 1과 10 사이에 들어가면 되므로 1 5 10으로 위치한다 8은 앞에 있는 숫자들을 봤을 때 1과 5와 10 사이 중에 5와 10 사이에 들어가면 되므로 1 5 8 10으로 위치한다. 이렇게 해당 숫자가 선택적으로 자리를 골라서 자리하게 되는 프로그램을..
나동빈 실전 알고리즘 3강 - 버블 정렬(Bubble Sort) 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 이번에는 버블 정렬(Bubble Sort)로 다음 숫자들을 오름차순으로 정리해보려고한다. 버블 정렬이란 이웃한 두 숫자를 비교하여 큰 수를 뒤로 보내는 정렬인데 확실히 듣기만해도 비효율적으로 보인다. 그럼 버블 정렬 프로그램을 작성해보자. package excercise; public class algorithm { public static void main(String[] args) { int temp = 0; int arr[] = {1, 10, 5, 8, 7, 6, 4, 3, 2, 9}; for(int i = 0; i < arr.length; i++) { for(int j = 0; j < (arr.leng..
나동빈 실전 알고리즘 2강 - 선택 정렬(Selection Sort) 2. 정렬의 개요와 선택 정렬(Selection Sort) 일반적으로 알고리즘을 공부할 때 가장 먼저 풀어보는 문제는 '정렬(Sort)' 문제입니다. 왜냐하면 정렬은 알고리즘의 효율성 차이를 확실히 보여줄 수 있기때문입니다. 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 위에서 주어진 숫자배열을 나열할 때 선택 정렬을 이용하기 위해서는 '가장 작은 것을 선택해서 앞으로 보낸다'라는 알고리즘을 이용해서 풀어볼 수 있다. 그러면 컴퓨터에게 이렇게 이해를 시키는 것이다. 1. 임의의 가장 작은 수를 지정한다.(최대한 큰 숫자로, 이것을 min이라고 정한다.) 2. 첫번째부터 min과 비교했을때 작은 수인지 확인한다.(가장 작은 숫자를 최대한 큰 숫자로 지정했기..
나동빈 실전 알고리즘 1강 알고리즘이란 '문제를 해결하는 절차'입니다 -알고리즘은 입력, 출력, 유한성, 명백성, 효과성을 만족해야합니다. -알고리즘은 분석을 통해 좋고 나쁨을 평가할 수 있습니다. -알고리즘은 논리이며 수학이고 실질적인 개발에 적용되는 기초적인 아이디어입니다. 알고리즘은 구체적으로 어디에 쓰일까? 알고리즘은 '개발'의 전체 과정에 사용됩니다. -실제 프로그램을 개발할 때 효율적인 알고리즘을 적용함으로써 원하는 결과를 도출해야 합니다. -스케줄 관리 프로그램 : 달력에서 특정한 달에 해당하는 일 수는 어떻게 구할까? -내비게이션 프로그램 : 여러 개의 중간 지점을 거쳐서 특정 지점으로 갈 때 가장 빠른 길은 무엇일까? -게시판 프로그램 : 한 페이지당 게시글을 10개씩 출력해야 하는데 어떻게 출력할까? 알고리즘을 ..
프레임워크, 기업용 소프트웨어 (저번 시간) 플랫폼 운영체제 - 플랫폼 - 응용 프로그램 >> 플랫폼은 운영체제와 응용 프로그램 사이에서 작동하는 하나의 툴 플랫폼의 성능 특성 분석 항목 - 가용성 : 정보 시스템은 적절한 방법으로 정보를 요구하는 사용자(클라이언트)에게 정보 서비스를 제공해야한다. - 응답시간 : 정보를 요구하는 사용자의 명령이 주어지고 반응하기까지 걸린 시간을 반응 시간이라고 한다. - 정확성 : 플랫폼에서 명령에 의해서 처리된 결과가 얼마나 올바른 값에 근접한가를 측정하는 정도를 말한다. - 사용률 : 하드웨어, 소프트웨어, 네트워크 자원등을 일정 시간 사용하는 정도를 말한다. 프레임워크 - 일정하게 짜여진 틀(뼈대)에서 일한다. - 프레임워크는 목적을 달성하기 위해 복잡하게 연결되어 있으며, 문제를 해결하기 위..
정보처리기사 - 소프트웨어 분류 및 특성 상용 소프트웨어 - 상업적 목적(대부분 판매)으로 생산 - 홍보를 위해 무료 소프트웨어도 포함(오픈소스 - 돈을 안 받고 완전히 무료로 배포 ex) Linux) - 대부분의 상용 소프트웨어는 원시코드는 제공하지 않고 실행 코드 (원시 코드 - C 언어나 Java 언어 같은 프로그램 언어로 작성된 프로그램 대부분 영문으로 구성된 명령어의 집합) #원시 코드를 실행하기 위해서는 컴파일러나 인터프리터가 필요함 - 컴파일러, 인터프리터 : 컴퓨터가 이해할 수 있는 0과 1로 구성된 기계어로 변환 @컴파일러는 처음부터 끝까지 실행(한꺼번에 몰아서 실행) @인터프리터는 명령어 한 줄씩 실행 상용 소프트웨어의 분류 산업 범용 SW,산업특화 SW 산업 범용 SW 1. 시스템 SW(기계 입장에서 개발) 응용 SW가 잘 ..
Servlet과 JSP Servlet이란? 웹 기반의 요청에 대한 동적인 처리가 가능한 하나의 클래스이며, Server Side에서 돌아가는 java Program이다. Servlet이 수정된 경우 Java 코드를 컴파일한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. 쉽게말해서, Java 코드 안에 HTML 코드(하나의 클래스) JSP란? Java 언어를 기반으로 하는 Server Side 스크립트 언어이며, HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구이다. 스크립트 언어이기 때문에 자바 기능을 그대로 사용할 수 있다. Tomcat(WAS)이 만들어놓은 객체를 사용한다. ( ex. request, response, sess..