알고리즘.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

Python RaspberryPi Sejin Oh. Raspberry Pi Python  참과 거짓  Python 자료형의 참과 거짓을 구분 짓는 기준은 다음과 같다. 2 참과 거짓 자료형참 or 거짓 “” 가 아닌 문자열 ( 예 : “python”) 참 “” 거짓.
변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
매년 성경일독을 하겠다고 다짐하 지만 성경을 끝까지 읽는 게 쉽지 않아요. 성경을 읽으려고 애썼지만 한 번 도 끝까지 읽어보지 못했어요. 성경을 여기저기 쥐 파먹듯 읽었 는데 도무지 서로 연결이 안 돼요. 성경의 큰 그림을 알고 싶어요. 뭐 좋은 방법 없을까요 ? 뭐 좋은.
영어로 음 식 만들기 김치 볶음 밥 조장 : 정현록 조원 : 조병철 조대일 조원희. Materials( 재료 ): Kimchi, Rice, Oil, Sesame, Sesame Oil 1. 프라이팬을 불에 달군다. 1.Grill the oriental style hot.
Phase Diagram (Subregular solution) 신소재공학과 송양희 Liquid 의 subregular solution 에서의 Gibbs energy.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
Lecture 9 프로그램 실행의 비용 computation cost – 시간 time, 메모리 memory – tractable vs intractable problems.
(Mathematical Induction)
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
재미있는 요리 활동 바다반 친구들 모두모두 즐겁게 요리해요! 언양초 바다반 교사 백주영.
4. Matlab-Simulink를 이용한 메카니즘 해석
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
테 스 트 (Testing) - Software Engineering -.
Chapter 02 순환 (Recursion).
Communication and Information Systems Lab. 황재철
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
For/While Syntax & Practice!!
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
예제로 배우는 Visual Basic 구구단 작성기로 익히는 반복문
03. 병행 프로세스 (Parallel Process)
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
4-6. 광합성 작용(1).
3 장 Visual Basic 2010 기본 문법 3.4 제어문 1) 조건문 2) 반복문 3) 기타 제어문
CHAP 10:그래프 (2) 순천향대학교 하상호.
자바 5.0 프로그래밍.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
파이프라이닝.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Introduction to Programming Language
제1장 생산공정 개요.
Hello, Python! #2 <부제: 코딩은 혼자하는 것이다>
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Control Flow 요약.
Fucntion 요약.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
알고리즘 알고리즘이란 무엇인가?.
제목을 적어주세요 슬로건/부제를 적어주세요 Made by : ‘꿀팁’ 사용글꼴 : 맑은 고딕.
제 15 강 문자와 코드 shcho.pe.kr.
7. Quicksort.
5장. 선택 알고리즘.
05. General Linear List – Homework
점화와 응용 (Recurrence and Its Applications)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
이산수학(Discrete Mathematics)
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
12 그리드 시스템.
함수, 모듈.
MotionSolve Contact 해석을 위해 Mesh를 조밀하게 짜서 해석하였지만
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
정삼각형을 정사각형으로 바꾸는 원리 탐구 하귀초등학교 6학년 고지상.
왜 ‘프로그래밍’을 ‘비이공계 학생’이 알아야 하는가?
1. BlueSoleil 프로그램 설치 및 SETUP 사항
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
C++ Espresso 제15장 STL 알고리즘.
개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay.
언플러그드 원리를 통한 재미있는 교과 학습 (1/5주제)
Ⅰ. Response 개체 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와 데이터를 저장하는.
Report #3- 문제 1 Set(집합) 추상 데이터 타입을 정의하고, 다음과 같은 연산자들을 포함시켜라. 여기서 S, S1, S2는 집합을 나타내고, i는 집합 원소를 나타낸다. 연산 의미 create() Return {} insert(S, i) If i є S then.
Presentation transcript:

알고리즘

알고리즘 문제를 해결하기 위한 절차를 기술한 것 누구나 정해진 절차대로 실행할 수 있어야 한다. 누구나 동일한 입력값이 주어지면 이 절차대로 실행하면 동일한 출력값을 얻을 수 있어야 한다. 일정한 시간안에 출력값을 구할 수 있어야 한다.

Formal하게 정의해 보면 순서대로 정의된 절차 명확성 반드시 원하는 결과가 나와야 한다. 분명한 순서가 있어야 한다. 한 동작을 실행하면 다음에 실행할 동작이 무엇인지 분명해야 한다. 명확성 모든 동작은 명확하게 정의되어야 한다. 모든 동작은 실행 가능해야 한다. 반드시 원하는 결과가 나와야 한다. 일정한 시간 안에 실행되어야 한다.

유사한 알고리즘 요리법 길찾기 …

두부야채땅콩소스볶음 요리법 재료 요리법 인분 : 4 준비시간: 10분 › 조리시간: 10분 › 요리시간:20분 땅콩유 1큰술 인분 : 4  땅콩유 1큰술 홍피망 1개 두부 1모 뜨거운물 1/2컵 간장 2큰술 카옌페퍼 약간 요리법 준비시간: 10분  ›  조리시간: 10분  ›  요리시간:20분   1. 브로콜리와 홍피망은 먹기 좋은 크기로 작게 썰어두세요. 버섯은 슬라이스하고 두부도 작게 깍둑썰기 해두세요. 2. 큰 후라이팬이나 중화냄비를 중간 센불로 달구고 땅콩유를 두른 뒤, 브로콜리, 피망, 버섯을 넣고 약 5분간 볶아주세요. 따로 두세요. 3. 같은 팬에 땅콩유를 두르고 두부를 넣고 노릇하게 볶아주세요. 4. 작은 볼에 땅콩버터, 뜨거운물, 식초, 간장, 당밀, 카옌페퍼를 넣고 잘 섞어준 뒤, 두부를 볶고 있는 팬에 넣고 섞어주세요. 여기에 볶아둔 야채도 넣고 같이 섞어주세요. 5. 약 5분간 땅콩소스가 야채와 두부에 잘 스며들도록 끓여준 뒤, 뜨거울 때 바로 내세요. (자료: allrecipes.kr)

이 요리법은 왜 알고리즘이라고 할 수 없을까?

알고리즘을 어떻게 적을까? 보통 사용하는 일반 언어로 적어 본다.

좀더 알기쉽게 적을 수는 없을까 알고리즘에 일정한 구조(structure)는 없는가? 1. 순차적 구조(sequential structure) S1 S2 S3 S4

2. 분기 구조(branch) true false S1 S’1 S1 S’1 S2 S’2 S2 S’2 S3 S’3 S3 S’3

3. 반복 구조(repetition) S1 S2 S3 S4 S’1

4. 점프 구조(jump) S1 S1 S2 S2 S3 S3 S4 S4 S5 S’1 S’1 S’2

이것 이외에 다른 구조는 없을까???

알고리즘 적기 그렇다면 우리는 알고리즘의 구조를 반영하여 적는다면 이해하기 쉬울 것이다. 알고리즘 기술 방법 플로우차트(flowchart) 프로그램 언어의 코드 - 이것은 특정 프로그램 언어의 문법을 알아야 된다. - 또 코드 수준으로 자세히 적을 필요는 없다. Pseudocode - 프로그램 언어의 코드 전 단계로 프로그램 언어들이 사용하는 구조를 그대로 이용한다.

그렇다면, 앞에서 적었던 알고리즘을 다시 pseudocode로 적어보면,

예1 “Given two nonnegative integer values, a ≥ 0, b ≥ 0, compute and output the product (a × b) using the technique of repeated addition. That is, determine the value of the sum a + a + a + . . . + a (b times).”

예1: 알고리즘(1) Loop b times, adding each time Set the value of count to 0 Set the value of product to 0 While (count < b) do Set the value of product to (product + a) Set the value of count to count + 1 End of loop Output the result Print the value of product

예1: 알고리즘(2)

예2 “Assume that we have a list of 10,000 names that we define as N1, N2, N3, . . . , N10,000, along with the 10,000 telephone numbers of those individuals, denoted as T1, T2, T3, . . . , T10,000. To simplify the problem, we initially assume that all names in the book are unique and that the names need not be in alphabetical order.” Then, input a name and find his or her telephone number.”

예2: 알고리즘(1)

예2: 알고리즘(2)