[자료구조와 알고리즘] 1. 알고리즘이란?
본 포스팅은 “자료구조와 함께 배우는 알고리즘(파이썬)” 책 내용을 기반으로 작성되었습니다. 잘못된 내용이 있을 경우 지적해 주시면 감사드리겠습니다.
1-1. 세 정수의 최대값 구하기
print('세 정수의 최대값을 구하라.')
a = int(input('정수 a 값 입력: ')) # input() 함수는 키보드로 문자열 입력받아 반환
b = int(input('정수 b 값 입력: ')) # int() 함수는 정수형으로 형 변환함.
c = int(input('정수 c 값 입력: '))
maximum = a
if b > maximum: maximum=b
if c > maximum: maximum=c
print(f'최대값은 {maximum}입니다.')
(결과) 세 정수의 최대값을 구하라.
정수 a 값 입력: 1
정수 b 값 입력: 3
정수 c 값 입력: 2
최대값은 3입니다.
참고로 if문이나 while문 등 복합문의 첫 부분은 콜론(:)으로 끝난다. 이 부분을 헤더라고 한다.
알고리즘이란 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차이다. 올바른 알고리즘은 어떠한 경우에도 실행 결과가 똑같이 나와야 한다.
파이썬 스타일 가이드인 P#P 8이라는 것이 있다. PEP8 문서는 파이썬의 일관된 규칙을 가이드로 제공한다. 예를 들어 클래스명은 카멜 케이스, 함수명은 스네이크 형식으로 쓰라고 권장하는 것이다. 들여쓰기시, 공백을 4개 사용하는 것도 권장 내용 중 하나이다. 이 점도 참고하자!
1-2. 조건문과 분기
for i in range(0, 3):
n = int(input('정수 입력: '))
if n > 0:
print('이 수는 양수입니다.')
elif n < 0:
print('이 수는 음수입니다.')
else:
print('이 수는 0입니다.')
(결과) 정수 입력: 17
이 수는 양수입니다.
정수 입력: -5
이 수는 음수입니다.
정수 입력: 0
이 수는 0입니다.
프로그래밍 언어에서는 +나 -등의 기호를 산술 연산자(Operator), 연산 대상을 피연산자(Operand)라고 한다. 그리고 피연산자가 1개면 단항 연산자, 2개면 이항 연산자, 3개면 심항 연산자 라고 한다. if~else문은 조건 연산자로, 파이썬의 유일한 삼항 연산자(a if b else c)이다.
1-3. 순서도 기호 살펴보기
- 데이터: 데이터 자체 의미

그림 1-1. 데이터
- 처리: 정보의 값, 형, 위치 바꾸도록 정의한 연산이나 연산 집합의 실행, 또는 연속하는 몇 가지 흐름 가운데 하나의 방향을 결정하는 연산이나 연산 집합의 실행.

그림 1-2. 처리
- 미리 정의한 처리: 서브루틴이나 모듈 등 다른 곳에서 이미 정의한 하나 이상의 연산 또는 명령으로 이루어진 처리.

그림 1-3. 미리 정의한 처리
- 판단: 하나의 입구와 하나 이상 선택하는 출구 있음. 판단 기호 안에 정의한 조건 평가하여 하나의 출구 선택하는 판단 기능 나타냄. 주로 예상되는 평가 결과는 경로를 나타낸 선 가까이에 표기.

그림 1-4. 판단
- 루프 범위: 두 부분으로 구성되어 루프의 시작과 종료 나타냄. 시작기호, 종료기호 안에 초깃값, 증가값, 종료값 표기.

그림 1-5. 루프 범위
- 선: 제어의 흐름 의미. 흐름 방향 분명하게 나타낼 때는 화살표 사용.

그림 1-6. 선
- 단말: 외부 환경으로 나가거나 외부 환경으로 들어오는 것. 주로 프로그램 흐름의 시작과 종료 나타냄.

그림 1-7. 단말
Leave a comment