Computer Science/자료구조

[4.18] <Do it! 자료구조와 함께 배우는 알고리즘 입문 - 파이썬>

토마토. 2021. 4. 18. 14:58

<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)

* 데이터 - 데이터 자체

* 처리 - 연산 연산 집합의 실행

* 미리 정의한 처리 - 서브루틴, 모듈 등

* 판단 - 판단 기호 안에 정의한 조건을 평가하여 출구를 선택('함수 호출값을 평가')

* 루프 범위 - 시작 기호, 종료 기호, 초기값, 중간값, 종료 조건 등

* 선 - 제어의 흐름

* 단말 - 외부 환경