카테고리 없음
알고리즘 이해
아구몬선생
2022. 6. 24. 20:15
알고리즘
특징
- 명확 : 알고리즘은 명확하고 모호하지 않아야 합니다. 각 단계는 모든 면에서 명확해야 하며 단 하나의 의미로 이어져야 합니다.
- Well Defined Inputs : 알고리즘이 입력을 받으라고 한다면 잘 정의된 입력이어야 합니다.
- 잘 정의된 출력 : 알고리즘은 산출할 출력을 명확하게 정의해야 하며 잘 정의되어야 합니다.
- 유한성 : 알고리즘은 유한해야 합니다. 즉, 유한한 시간 후에 종료되어야 합니다.
- 실행 가능 : 알고리즘은 사용 가능한 리소스로 실행할 수 있도록 단순하고 일반적이며 실용적이어야 합니다. 미래의 기술이나 어떤 것도 포함하지 않아야 합니다.
- 언어 독립적 : 설계된 알고리즘은 언어 독립적이어야 합니다. 즉, 모든 언어로 구현될 수 있는 단순한 명령이어야 하지만 예상대로 출력은 동일해야 합니다.
속성
- 제한된 시간 후에 종료되어야 한다
- 최소한 하나의 출력을 생성
- 0개 이상의 입력이 필요
- 동일한 입력 케이스에 대해 동일한 출력을 제공하는 결정론적 수단이어야 한다
- 알고리즘의 모든 단계는 효과적이어야 한다. 즉 모든 단계는 일부 작업을 수행해야 한다
장점
- 이해하기 쉽다
- 알고리즘은 주어진 문제에 대한 솔루션의 단계적 표현
- 알고리즘에서 문제는 더 작은 조각이나 단계로 나뉜다, 따라서 프로그래머가 이를 실제 프로그램으로 변환하는 것이 더 쉽다.
단점
- 알고리즘을 작성하는 것은 시간이 오래 걸린다
- 알고리즘을 통해 복잡한 논리를 이해하는 것은 매우 어려울 수 있다
- 분기 및 반복 문은 알고리즘(imp)에 표시하기 어렵다
설계하는 방법
- 명확한 문제 정의
- 제약 조건
- 문제를 해결하기 위해 수행할 입력
- 출력
- 문제에 대한 해결책
1단계 : 전제 조건
예시)
- 이 알고리즘으로 풀어야 할 문제
- : 3개의 숫자를 더하고 그 합을 출력합니다.
- 문제를 해결하는 동안 고려해야 하는 문제의 제약 조건
- : 숫자는 숫자만 포함하고 다른 문자는 포함하지 않아야 합니다.
- 문제를 해결하기 위해 취해야 할 입력:
- 더할 세 개의 숫자.
- 문제가 해결될 때 예상되는 출력:
- 입력으로 취한 세 숫자의 합, 즉 단일 정수 값.
- 주어진 제약 조건에서 이 문제에 대한
- 솔루션: 솔루션은 3개의 숫자를 더하는 것으로 구성됩니다. '+' 연산자, 비트 단위 또는 다른 방법을 사용하여 수행할 수 있습니다.
2단계 : 알고리즘 설계
예시)
- 시작
- 3개의 정수 변수 num1, num2 및 num3을 선언합니다.
- 추가할 세 개의 숫자를 각각 변수 num1, num2 및 num3의 입력으로 사용합니다.
- 3개의 숫자의 결과 합을 저장하기 위해 정수 변수 sum을 선언합니다.
- 3개의 숫자를 더하고 결과를 변수 sum에 저장합니다.
- 변수 합계의 값을 인쇄합니다.
- 끝
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)