<Do it! 자료구조와 함께 배우는 알고리즘 입문 - 파이썬편>
1장. 알고리즘 기초
01-1 알고리즘이란?
순차 구조 sequential structure
선택 구조 select structure - 조건식(if ~:)에 따라 실행 흐름 변경됨
형 변환 - type conversion : 문자열형을 정수형으로 변환 int(input())
최댓값 구하기
print('정수 세 개를 입력하세요')
a = int(input('첫번째 정수는 :'))
b = int(input('두번째 정수는 :'))
c = int(input('세번째 정수는 :'))
if a >= b and a >= c :
print('최댓값은 {0}입니다.'.format(a))
elif b >= a and b >= c:
print('최댓값은 {0}입니다.'.format(b))
else:
print('최댓값은 {0}입니다.'.format(c))
조건식 : ex) b > maximum
양 갈래 선택 : 조건식에 따라 알고리즘 흐름이 두 갈래로 나뉨
복합문의 구조 : 헤더 header - ex) if ~ : 이어지는 스위트
'함수 호출식을 평가해야 함수의 반환값 return을 받을 수 있다'
결정 트리 decision tree - 조합을 나열한 구조
중앙값 구하기
def median(a, b, c):
if a >= b >= c or c >= b >= a:
return b
elif a > c > b or b > c > a:
return c
else:
return a
print(median(1, 2, 3))
예제 코드
코드는 짧아도 비효율적인 프로그램일 수 있음
def medium(a, b, c):
if a >= b:
if b >= c:
return b
elif a <= c:
return a
else:
return c
elif a > c:
return a
elif b > c:
return c
else:
return b
print(medium(3, 5, 7))
조건문과 분기
부호(양/음/영) 판단하기 - 분기 세 개
산술 연산자 operator +, -
- 단항 연산자 unary operator (피연산자 1개) -a
- 이항 연산자 binary operator (피연산자 2개) a < b
- 삼항 연산자 ternary operator (피연산자 3개)
: if ~ else문 - a if b else c
x = 3
y = 4
a = x if x > y else y
print(a)
c = 7
print('c는 0' if c == 0 else 'c=/=0')
피연산자 operand
def sign(a):
if a > 0:
return "plus"
elif a == 0:
return "zero"
else:
return "minus"
순서도 flowchart
출처 : 순서도의 개념 순서도 그리는 방법 : 네이버 블로그 (naver.com)
* 데이터 - 데이터 자체
* 처리 - 연산 연산 집합의 실행
* 미리 정의한 처리 - 서브루틴, 모듈 등
* 판단 - 판단 기호 안에 정의한 조건을 평가하여 출구를 선택('함수 호출값을 평가')
* 루프 범위 - 시작 기호, 종료 기호, 초기값, 중간값, 종료 조건 등
* 선 - 제어의 흐름
* 단말 - 외부 환경
'Computer Science > 자료구조' 카테고리의 다른 글
[4.21] 02-1 배열하는 알고리즘 (2) (1) | 2021.04.21 |
---|---|
[4.20] 02-2 배열이란? -(1) (1) | 2021.04.20 |
[4.19] 02-1 자료구조와 배열(1) (1) | 2021.04.19 |
[4.18] 01-2 반복되는 알고리즘 (마무리) (0) | 2021.04.18 |
[4.18] 01-2 반복하는 알고리즘 (0) | 2021.04.18 |