알고리즘 필수 5조건 · 의사코드 · 순서도

고난도 OX 20문제 + 상세 풀이 HTML 수업자료

1. 핵심 개념 정리

입력
알고리즘은 0개 이상의 입력값을 가질 수 있다.
출력
알고리즘은 최소 1개 이상의 결과를 생성해야 한다.
명확성
각 단계는 모호하지 않고 분명해야 한다.
유한성
유한한 단계 안에서 반드시 종료되어야 한다.
유효성
각 단계는 실제로 수행 가능한 연산이어야 한다.

의사코드 예시

시작
  정수 A를 입력받는다
  정수 B를 입력받는다
  SUM = A + B
  SUM을 출력한다
끝

파이썬 코드 예시

a = int(input("A 입력: "))
b = int(input("B 입력: "))
sum_value = a + b
print(sum_value)

순서도 기본 흐름 예시

시작
A, B 입력
SUM = A + B
SUM 출력

2. 고난도 OX 20문제 + 상세 풀이

1. 알고리즘은 반드시 1개 이상의 입력을 가져야 하므로, 입력이 없는 알고리즘은 존재할 수 없다.
정답: X
입력 조건은 0개 이상의 입력을 허용한다. 예를 들어 현재 시간을 출력하거나 정해진 문구를 출력하는 절차는 외부 입력 없이도 알고리즘이 될 수 있다.
2. 알고리즘은 결과를 확인할 수 있어야 하므로 최소 1개 이상의 출력을 가져야 한다.
정답: O
출력은 알고리즘 수행 결과를 의미한다. 출력이 전혀 없다면 문제 해결 결과를 확인할 수 없으므로 알고리즘의 필수 조건을 만족하기 어렵다.
3. 명확성은 알고리즘의 각 단계가 사람마다 다르게 해석되지 않도록 분명해야 한다는 뜻이다.
정답: O
명확성은 “적당히”, “대충”, “충분히”처럼 애매한 표현을 피하고, 누구나 같은 방식으로 수행할 수 있도록 절차를 정의하는 조건이다.
4. 유한성은 알고리즘이 빠르게 실행되어야 한다는 뜻이므로, 시간이 오래 걸리는 알고리즘은 유한성을 만족하지 못한다.
정답: X
유한성은 반드시 종료되는가의 문제이지, 속도의 문제가 아니다. 시간이 오래 걸려도 유한한 단계 안에서 끝나면 유한성을 만족한다.
5. 유효성은 알고리즘의 각 명령이 실제로 수행 가능한 기본 연산이어야 함을 의미한다.
정답: O
예를 들어 덧셈, 비교, 대입, 출력은 유효한 연산이다. 반면 “정답을 직관적으로 알아낸다”처럼 실제 수행 방법이 불분명한 명령은 유효성을 만족하지 못한다.
6. 의사코드는 실제 프로그래밍 언어의 문법을 반드시 정확히 따라야 하며, 그렇지 않으면 알고리즘 표현으로 사용할 수 없다.
정답: X
의사코드는 특정 언어의 문법에 얽매이지 않고 알고리즘 절차를 사람이 이해하기 쉽게 표현하는 방법이다. 실제 실행 가능성이 아니라 절차 설명의 명확성이 중요하다.
7. 의사코드는 코딩 전에 문제 해결 절차를 정리하여 논리 오류를 줄이는 데 도움을 준다.
정답: O
의사코드는 구현 전에 입력, 처리, 출력 흐름을 정리하게 해 주므로 복잡한 문제를 작은 단계로 나누고 오류를 줄이는 데 효과적이다.
8. 순서도는 알고리즘의 흐름을 도형과 화살표로 표현하는 시각적 표현 방법이다.
정답: O
순서도는 시작/끝, 입력/출력, 처리, 조건 판단 등을 약속된 도형과 흐름선으로 나타내어 알고리즘의 실행 순서를 쉽게 파악하게 한다.
9. 순서도에서 마름모는 일반적으로 계산이나 대입 같은 처리 과정을 나타낸다.
정답: X
마름모는 보통 조건 판단을 나타낸다. 계산이나 대입 같은 처리 과정은 일반적으로 직사각형으로 표현한다.
10. 순서도에서 화살표는 알고리즘의 실행 흐름과 순서를 나타낸다.
정답: O
화살표는 다음에 어떤 단계가 실행되는지를 보여 준다. 따라서 알고리즘의 순차, 선택, 반복 구조를 시각적으로 연결하는 역할을 한다.
11. 알고리즘의 기본 제어 구조에는 순차, 선택, 반복이 포함된다.
정답: O
순차는 차례대로 실행, 선택은 조건에 따른 분기, 반복은 조건을 만족하는 동안 같은 과정을 되풀이하는 구조이다.
12. 선택 구조는 반드시 if-else처럼 두 가지 경우로만 나뉘어야 한다.
정답: X
선택 구조는 두 가지뿐 아니라 여러 가지 경우로 나뉠 수 있다. 예를 들어 if-elif-else 구조는 세 가지 이상의 분기를 표현할 수 있다.
13. 반복 구조가 포함된 알고리즘은 모두 유한성을 만족하지 못한다.
정답: X
반복이 있다고 해서 무조건 유한성을 위반하는 것은 아니다. 반복 횟수가 정해져 있거나 종료 조건이 명확하면 유한성을 만족한다.
14. while True를 사용한 코드라도 내부에 break 조건이 있어 반드시 종료된다면 유한성을 만족할 수 있다.
정답: O
겉으로는 무한 반복처럼 보여도 특정 조건에서 break로 빠져나오도록 설계되어 있고 그 조건이 반드시 도달 가능하다면 종료 가능성이 있다.
15. 알고리즘은 항상 가장 빠른 방법이어야 하므로, 더 느린 방법은 알고리즘이 아니다.
정답: X
알고리즘은 문제 해결 절차이다. 효율성은 중요하지만, 가장 빠른 방법만 알고리즘으로 인정되는 것은 아니다. 다만 성능 비교를 통해 더 나은 알고리즘을 선택할 수 있다.
16. 같은 문제에 대해 여러 개의 알고리즘이 존재할 수 있다.
정답: O
예를 들어 정렬 문제는 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬 등 여러 알고리즘으로 해결할 수 있다.
17. 의사코드와 순서도는 알고리즘을 표현하는 방법이지, 알고리즘의 필수 5조건 그 자체는 아니다.
정답: O
필수 5조건은 입력, 출력, 명확성, 유한성, 유효성이다. 의사코드와 순서도는 이러한 알고리즘을 설계하거나 설명하기 위한 표현 도구이다.
18. 출력 조건은 반드시 화면에 print로 출력해야 한다는 뜻이다.
정답: X
출력은 화면 출력만 의미하지 않는다. 파일 저장, 함수의 반환값, 데이터베이스 기록, 그래프 표시 등도 결과를 생성하는 출력이 될 수 있다.
19. 알고리즘 설계 과정에서는 문제 정의, 분석, 설계, 구현, 검증 및 개선 과정을 거칠 수 있다.
정답: O
알고리즘을 체계적으로 만들기 위해 먼저 문제와 입출력을 정의하고, 해결 절차를 설계한 뒤 코드로 구현하고 테스트하며 개선한다.
20. 알고리즘의 명확성이 부족해도 컴퓨터가 알아서 해석할 수 있으므로 실행 결과에는 영향을 주지 않는다.
정답: X
명확하지 않은 절차는 사람도 컴퓨터도 정확히 수행하기 어렵다. 특히 프로그래밍에서는 모호한 명령을 코드로 바꿀 수 없으므로 명확성은 매우 중요하다.

3. 정답표

번호12345678910
정답XOOXOXOOXO
번호11121314151617181920
정답OXXOXOOXOX

4. 헷갈리는 핵심 포인트

주의 1. 입력은 반드시 1개 이상이 아니라 0개 이상이다.
주의 2. 출력은 반드시 2개 이상이 아니라 최소 1개 이상이다.
주의 3. 유한성은 빠르다는 뜻이 아니라 반드시 끝난다는 뜻이다.
주의 4. 의사코드는 실제 실행 가능한 코드가 아니라 설계용 표현이다.
주의 5. 순서도는 알고리즘 자체가 아니라 알고리즘을 시각적으로 표현하는 도구이다.

시험 암기 문장:
알고리즘은 문제 해결을 위한 명확하고 유효한 절차이며, 0개 이상의 입력과 1개 이상의 출력을 가지고, 유한한 단계 안에서 종료되어야 한다.