카테고리 없음

알고리즘 이해

아구몬선생 2022. 6. 24. 20:15

알고리즘

특징

  • 명확 : 알고리즘은 명확하고 모호하지 않아야 합니다. 각 단계는 모든 면에서 명확해야 하며 단 하나의 의미로 이어져야 합니다.
  • Well Defined Inputs : 알고리즘이 입력을 받으라고 한다면 잘 정의된 입력이어야 합니다.
  • 잘 정의된 출력 : 알고리즘은 산출할 출력을 명확하게 정의해야 하며 잘 정의되어야 합니다.
  • 유한성 : 알고리즘은 유한해야 합니다. 즉, 유한한 시간 후에 종료되어야 합니다.
  • 실행 가능 : 알고리즘은 사용 가능한 리소스로 실행할 수 있도록 단순하고 일반적이며 실용적이어야 합니다. 미래의 기술이나 어떤 것도 포함하지 않아야 합니다.
  • 언어 독립적 : 설계된 알고리즘은 언어 독립적이어야 합니다. 즉, 모든 언어로 구현될 수 있는 단순한 명령이어야 하지만 예상대로 출력은 동일해야 합니다.

속성

  • 제한된 시간 후에 종료되어야 한다
  • 최소한 하나의 출력을 생성
  • 0개 이상의 입력이 필요
  • 동일한 입력 케이스에 대해 동일한 출력을 제공하는 결정론적 수단이어야 한다
  • 알고리즘의 모든 단계는 효과적이어야 한다. 즉 모든 단계는 일부 작업을 수행해야 한다

장점

  • 이해하기 쉽다
  • 알고리즘은 주어진 문제에 대한 솔루션의 단계적 표현
  • 알고리즘에서 문제는 더 작은 조각이나 단계로 나뉜다, 따라서 프로그래머가 이를 실제 프로그램으로 변환하는 것이 더 쉽다.

단점

  • 알고리즘을 작성하는 것은 시간이 오래 걸린다
  • 알고리즘을 통해 복잡한 논리를 이해하는 것은 매우 어려울 수 있다
  • 분기 및 반복 문은 알고리즘(imp)에 표시하기 어렵다

설계하는 방법

  • 명확한 문제 정의
  • 제약 조건
  • 문제를 해결하기 위해 수행할 입력
  • 출력
  • 문제에 대한 해결책

1단계 : 전제 조건

예시)

  1. 이 알고리즘으로 풀어야 할 문제
  2. : 3개의 숫자를 더하고 그 합을 출력합니다.
  3. 문제를 해결하는 동안 고려해야 하는 문제의 제약 조건
  4. : 숫자는 숫자만 포함하고 다른 문자는 포함하지 않아야 합니다.
  5. 문제를 해결하기 위해 취해야 할 입력:
  6. 더할 세 개의 숫자.
  7. 문제가 해결될 때 예상되는 출력:
  8. 입력으로 취한 세 숫자의 합, 즉 단일 정수 값.
  9. 주어진 제약 조건에서 이 문제에 대한
  10. 솔루션: 솔루션은 3개의 숫자를 더하는 것으로 구성됩니다. '+' 연산자, 비트 단위 또는 다른 방법을 사용하여 수행할 수 있습니다.

2단계 : 알고리즘 설계

예시)

  1. 시작
  2. 3개의 정수 변수 num1, num2 및 num3을 선언합니다.
  3. 추가할 세 개의 숫자를 각각 변수 num1, num2 및 num3의 입력으로 사용합니다.
  4. 3개의 숫자의 결과 합을 저장하기 위해 정수 변수 sum을 선언합니다.
  5. 3개의 숫자를 더하고 결과를 변수 sum에 저장합니다.
  6. 변수 합계의 값을 인쇄합니다.

3단계 : 알고리즘 설계

구현

if __name__ == "__main__":
 
    num1 = num2 = num3 = 0

    sum = 0
 
    num1 = int(input("Enter the 1st number: "))
 
    num2 = int(input("Enter the 2nd number: "))
 
    num3 = int(input("Enter the 3rd number: "))
 
    sum = num1 + num2 + num3
 
    print("\nSum of the 3 numbers is:", sum)