Preface
오늘은 알고리즘의 첫 부분을 공부했다.
아직 초반 부분이라 그런지 딱히 어려운 부분은 없었고 대부분 이전에 공부했던 내용들이었다.
앞으로 책을 볼 때마다 코드 이해도와 코딩 속도 향상을 위해 책에 실린 다양한 실습 코드를 한 줄 한 줄 분석하며 직접 코드를 작성해 볼 생각이다.
1. 알고리즘이란?
- 순차 구조 : 한 문장씩 순서대로 처리되는 구조
- 조건식 : if와 콜론(:) 사이에 있는 식
- 선택 구조 : 조건식으로 평가한 결과에 따라 프로그램의 실행 흐름이 변경되는 구조
- 형 변환 : 문자열형을 정수형으로 변환하는 과정
- 복합문의 구조
1) 헤더 : 키워드로 시작하여 콜론으로 끝나는 복합문의 첫 부분
2) 콜론 : 바로 뒤에 스위트가 이어짐을 의미
→ 스위트 : 헤더와 한 세트로 따라다니는 실행문
- 합수 호출식을 평가해야 함수가 반환한 값을 얻을 수 있다.
- 알고리즘 : 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차
→ 올바른 알고리즘은 실행 결과가 항상 일정하다.
- 복합문 작성 규칙
1) 복합문의 스위트는 반드시 행마다 같은 수준으로 들여쓰기를 해야 한다.
→ 공백 4개를 들여쓰기로 사용
if a > b:
min2 = a
max2 = b
2) 스위트가 단순문이면 헤더와 같은 행에 둘 수 있다.
→ 단순문이 2개 이상이면 각각의 단순문을 세미콜론(;)으로 구분하여 같은 행에 둘 수 있다.
→ 세미콜론은 마지막 단순문 뒤에도 놓을 수 있다.
if a < b: min2 = a
if a < b: min2 = a; max2 = b
if a < b: min2 = a; max2 = b;
3) 스위트가 복합문이면 헤더와 스위트를 같은 행에 포함시킬 수 없다.
- 분기 : 프로그램의 실행 흐름을 다른 곳으로 변경하는 명령
- 해당 코드에서 분기는 몇 개일까?
n = int(input('정수를 입력하세요: '))
if n == 1:
print('A')
elif n == 2:
print('B')
elif n == 3:
print('C')
→ 위 코드에는 else문이 숨어 있으므로 정답은 4개이다.
즉, 위 코드를 조금 더 분명히 표현하면 다음과 같다.
n = int(input('정수를 입력하세요: '))
if n == 1:
print('A')
elif n == 2:
print('B')
elif n == 3:
print('C')
else:
pass
- 연산자와 피연산자
1) 산술 연산자 : +, - 등의 기호
① 단항 연산자 : 피연산자 1개 (-a)
② 이항 연산자 : 피연산자 2개 (a < b)
③ 삼항 연산자 : 피연산자 3개 (a if b else c)
→ 파이썬에선 조건 연산자인 if~else문이 유일한 삼항 연산자이다.
# a if b else c를 평가한 값이 참이면 a를, 거짓이면 c를 반환한다.
a = x if x > y else y
# x와 y 중 큰 값을 a에 대입
print('c는 0입니다.' if c == 0 else 'c는 0이 아닙니다.')
2) 피연산자 : 연산 대상
- 순서도 기호 종류
1) 실제로 실행할 연산을 나타내는 기호
2) 제어 흐름을 나타내는 선 기호
3) 프로그램 순서도를 이해하거나 작성하는 데 편리한 특수 기호
'Algorithm > 자료구조와 함께 배우는 알고리즘(Python)' 카테고리의 다른 글
검색 알고리즘과 선형 검색 (0) | 2021.10.04 |
---|---|
배열이란? (0) | 2021.10.02 |
자료구조와 배열 (0) | 2021.10.01 |
반복하는 알고리즘 (0) | 2021.09.29 |
자료구조와 함께 배우는 알고리즘 출처 (0) | 2021.09.27 |
댓글