1 minute read

본 포스팅은 “자료구조와 함께 배우는 알고리즘(파이썬)” 책 내용을 기반으로 작성되었습니다. 잘못된 내용이 있을 경우 지적해 주시면 감사드리겠습니다.

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-1. 데이터

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

그림 1-2. 처리

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

그림 1-3. 미리 정의한 처리

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

그림 1-4. 판단

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

그림 1-5. 루프 범위

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

그림 1-6. 선

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

그림 1-7. 단말

Leave a comment