| English | 의미 |
|---|---|
| algorithm/ˈælɡərɪθəm/ | 알고리즘 |
| sequence/ˈsiːkwəns/ | 순서 |
| deterministic/dɪˌtɜːmɪˈnɪstɪk/ | 결정론적 |
| identifier table/aɪˈdentɪfaɪə ˈteɪbl/ | 식별자 표 |
| variable/ˈveərɪəbl/ | 변수 |
| data type/ˈdeɪtə taɪp/ | 데이터 타입 |
| pseudocode/ˈsuːdəʊkəʊd/ | 가짜 코드 |
| assignment/əˈsaɪnmənt/ | 대입 |
| loop/luːp/ | 반복문 |
| count-controlled loop/kaʊnt kənˈtrəʊld luːp/ | 카운트 제어 반복문 |
| pre-condition loop/priː kənˈdɪʃn luːp/ | 전제 조건 반복문 |
| post-condition loop/pəʊst kənˈdɪʃn luːp/ | 후위 조건 반복문 |
| iteration/ˌɪtəˈreɪʃn/ | 반복 |
| selection/sɪˈlekʃn/ | 선택 구조 |
| flowchart/ˈfləʊtʃɑːt/ | 플로우차트 |
| stepwise refinement/ˈstepwaɪz rɪˈfaɪnmənt/ | 점진적 정교화 |
역사상 가장昂贵的 한 줄(하이픈)
- 1962년 7월 22일, 금성으로 향하던 마이너 1호 로켓은 발사 후 293초 만에 폭파되었다.
- 원인은 유도 방정식 기호 위缺失된 바(bar) 하나였다. 컴퓨터는_written된 단계들을 정확히 따랐고, Written된 단계들은 틀렸다.
- 컴퓨터는 당신이 의도했던 것을 채워 주지 않는다. 제공每一步都必须有唯一含义。
- 이것이 이 수업이 기계가 따를 수 있는 단계를 쓰는 것에 대한 이유이다: 알고리즘.
알고리즘이란 무엇인가
- 알고리즘은 정의된 단계의 순서로 표현된 문제 해결책이다.
- 각 단계는 모호하지 않다(단일 의미), 결정론적이다(동일 입력 → 동일 출력), 유한하다(단계가 끝남) 및 유효하다(각 단계가 실제로 수행 가능함).
- 무엇을 할지를 말하며, 특정 프로그래밍 언어와 무관하며, 모든 것이 입력 → 처리 → 출력을 따른다.

모든 알고리즘은 동일한 형태를 가진다: 입력, 처리, 출력
알고리즘은 "결정적(deterministic)"입니다. 이는 다음을 의미합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
결정적 = 동일한 입력 → 매번 동일한 출력. (유한 = 단계가 종료됨; 모호하지 않음 = 각 단계에 하나의 의미만 존재.)
풀이 예제: 식별자 표
- 코드를 쓰기 전에 식별자 표에 모든 데이터 항목을 나열한다: 변수 이름, 데이터 유형 및 설명.
- 상점의 재고 프로그램은
"Fruit",20/02/2025,12.67및TRUE을 저장한다. 시험에서는 각각에 대해 이름과 유형을 요구한다. Category : STRING(재고 카테고리),DateSold : DATE(판매 시점),ItemCost : REAL(비용),InStock : BOOLEAN(재고 있음?).- 행당 이름 및 유형마다 1점이므로, 가설코드 가이드가 하는 대로 유형을 정확히 쓰라:
INTEGER,REAL,STRING,CHAR,BOOLEAN,DATE.

식별자 표는 코드를 쓰기 전에 모든 데이터 항목에 이름을 부여한다
식별자 표에서 12.67(비용)과 같은 값의 데이터 유형은 ____입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
소수 부분이 있는 수는 REAL입니다. INTEGER는 정수용, STRING은 텍스트용, BOOLEAN은 TRUE/FALSE용, DATE는 날짜용입니다.
세 가지 구조
IF … THEN … ELSE … ENDIF
- 대입은 화살표를 사용하여 값을 저장하며,
Total ← Total + Value;=는 비교용이다.DIV는 정수除法且MOD는 나머지이므로17 MOD 5 = 2.
INPUT Age # sequence
IF Age >= 18 THEN
# selection
ENDIF
OUTPUT "Adult"
ELSE
OUTPUT "Minor"
ENDIF
FOR Count <- 1 TO 10 # iteration
OUTPUT Count
NEXT Count

어떤 알고리즘의 세 가지 구성 요소
선택: IF / ELSE 분기를 따르십시오.
점수를 드래그하여 어떤 분기가 실행되는지 확인하십시오. 선택 구조는 각 조건을 순서대로 테스트하며, 첫 번째로 참인 조건을 선택합니다 — 이것이 IF … ELSE IF … ELSE가 작동하는 방식입니다.
세 가지 프로그래밍 구조를 각각 그 기능과 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
모든 알고리즘은 오직 세 가지 구조 — 순서, 선택, 반복 — 로 구성됩니다.
이 가짜코드에서 할당(value 저장)을 의미하는 기호는 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
할당은 ←을 사용합니다(예: x ← 5); =은 비교 전용으로 예약되어 있습니다.
17 MOD 5의 값은 무엇입니까?
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
MOD는 나머지를 제공합니다: $17 = 3 \times 5 + 2$, 따라서 17 MOD 5 = 2. (17 DIV 5 = 3.)
어떤 루프?
FOR … NEXT반복 횟수를 알 때: 카운트 제어 루프.WHILE … ENDWHILE각 pass 전에 조건을 테스트하므로 본체가 영회될 수 있다: 사전 조건 루프.REPEAT … UNTIL각 pass 후에 테스트하므로 본체는 최소 한 번 반드시 실행된다: 사후 조건 루프. 입력 검증이 전형적인 경우이다.- "반복 구조를 설명하라"는 답은 루프를 명시하고, 조건이 어디에서 테스트되는지, 그리고 그 결과를 제시해야 한다.

WHILE 루프는 본체 실행 전에 테스트하고, REPEAT … UNTIL 루프는 이후에 테스트합니다
WHILE 루프와 REPEAT...UNTIL 루프의 차이는 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
WHILE은 먼저 확인(0회 실행 가능); REPEAT...UNTIL은 나중에 확인하므로 최소 한 번 이상 반드시 실행됨.
FOR 루프는 카운트 제어형(고정 횟수 반복)이며, WHILE 루프는 조건 제어형(조건이 변경될 때까지 반복)입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
반복 횟수가 알려졌을 때는 FOR을 사용하고, 무언가가 참이 될 때까지 반복해야 할 때는 WHILE/REPEAT을 사용하십시오.
풀이 예제: 단어에서 가설코드로
- 과제: 100개의 정수 값을 입력하고, 양수들만 합산하여 총액을 출력한다.
- 먼저 데이터를 계획하라:
Count,Total및NextNumber, 모두INTEGER. 그런 다음 세 가지 구조가 나머지를 처리한다.
DECLARE Count, Total, NextNumber : INTEGER
Total <- 0
FOR Count <- 1 TO 100
INPUT NextNumber
IF NextNumber > 0 THEN
Total <- Total + NextNumber
ENDIF
NEXT Count
OUTPUT Total
- 추가 질문에서는 구조를 식별하도록 요구한다: 반복(
FOR루프가 입력을 100번 반복), 선택(IF이 값을 추가할지 결정), 순서(명령들이 순서대로 실행됨).
추출물에서 구조 찾기
- 자주 나오는 질문은 다섯 개의 가설코드 추출물을 보여주고, 대입, 선택, 반복 중 각哪一个가 사용하는지에 체크하도록 요청한다.
Result ← CalculateTotal()는 대입이다.WHILE IsClosed는 반복이다.REPEAT … INPUT Value … UNTIL Sales[4] > Value는 반복 및 대입이다(INPUT이 값을 저장함). IF Sales[Current] <= 150 THEN Discount ← TRUE ENDIF- 추출물의 모든 줄을 보라, 첫 줄뿐만 아니라. 한 줄에 두 번 체크가 필요할 수도 있다.
이 추출문에서 어떤 구조를 사용합니까? REPEAT … INPUT Value … UNTIL Total > 100. 모두 적용되는 것을 택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
REPEAT … UNTIL은 반복이며, INPUT Value은 값을 저장하므로 할당에 해당합니다. IF 또는 CASE가 없으므로 선택 구조가 없습니다 — UNTIL 조건은 루프를 제어할 뿐 분기 중 하나를 선택하지 않습니다.
플로우차트
- 플로우차트는 그림으로 같은 알고리즘을 문서화합니다. 타원형은
START와END, 직사각형은 프로세스, 평행사각형은INPUT/OUTPUT, 그리고 다이아몬드는 결정입니다. - 다이아몬드는 선택이 이루어지는 곳이며, 플로우 차트를 위로going하는 플로우 라인은 루프입니다.
- 시험은 두 가지 방식으로 출제됩니다: 플로우차트에서出来的의 가짜코드(pseudocode), 그리고 가짜코드 또는 구조화 영어에서出来的의 플로우차트. 그리는 모든 기호는 가짜코드의 한 줄에 매핑되어야 합니다.

각 플로우차트 기호는 하나의 가짜코드 문장에 매핑됩니다
플로우차트에서 마름모는 무엇을 나타내나요?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
마름모는 선택이 발생하는 곳이며, 플로우 라인이 다시 위로 돌아가는 마름모는 루프 테스트입니다. 직사각형은 처리 과정, 평행사변형은 입출력, 타원은 START 및 END를 나타냅니다.
풀이 예제: 추측 게임
- 프로그램은 1부터 100 사이의 무작위 정수를 선택한 후, 사용자가 맞출 때까지 추측을 요청합니다. 사용자는 최소 한 번 이상 추측해야 하므로, 루프는
REPEAT … UNTIL입니다.
DECLARE Target, Guess : INTEGER
Target <- INT(RAND(100)) + 1
REPEAT
INPUT Guess
IF Guess < Target THEN
OUTPUT "Too low"
ELSE
IF Guess > Target THEN
OUTPUT "Too high"
ENDIF
ENDIF
UNTIL Guess = Target
OUTPUT "Correct"
- 플로우차트를 따르세요: 루프 테스트를 위한 결정 다이아몬드 하나, 힌트용 두 개, 그리고 모든 플로우 라인이 다시
INPUT Guess이나END로 돌아갑니다.

플로우차트로 본 추측 게임: 루프가 추측이 일치할 때까지 입력으로 돌아감
왜 REPEAT … UNTIL이 추측 게임에 적합한 루프입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
사후 조건 루프는 테스트하기 전에 본문을 반드시 한 번 실행하므로, 최소 한 번의 추측이 필요한 게임과 일치합니다. WHILE 루프라면 테스트할 대상이 있어야 하므로 루프 전에 추측이 필요합니다.
단계별 세분화
- 단계별 세분化은 초안(outline)에서 시작하여 각 단계를 더 상세한 단계로 확장하고, 이 과정을 반복하여 모든 단계가 직접 가짜코드로 작성될 수 있게 만드는 것입니다.
- "주문 처리" → "품목 받기", "합계 계산", "결제 수령" → "합계 계산"이 "각 품목에 대해 가격 × 수량을 더함; 할인을 적용함"이 됩니다.
- 각 수준은 위 수준의 세분화이며, 완성된 수준들이 합쳐져 설계가 됩니다. "단계별 세분화를 설명하라"는 것은 초안, 확장 및 종료 규칙을 의미합니다.

직접 코딩할 수 있을 때까지 각 단계를 세분화하세요
단계적 세분화의 단계를 순서대로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
먼저 초안을 만들고 단계별로 세분화하십시오. 단계가 가짜코드 한 줄이 되면 중단합니다.
논리 문장
- 해의 일부는 논리 문장으로 정의됩니다: 비교 연산(
=,<>,<,>,<=,>=)으로 구성된 조건들이AND,OR및NOT으로 연결된 것입니다. - 유효한 점수:
Mark >= 0 AND Mark <= 100. 고객이 회원이거나 50을 초과 지출하면 할인 적용:IsMember OR Total > 50. NOT (Mark < 40)는Mark >= 40과 같은 의미를 가집니다. 문장을 쓴 후 경계 양측의 값으로 테스트해 보십시오.

AND, OR 및 NOT으로 연결된 비교들은 알고리즘이 필요로 하는 조건들을 만듭니다
NOT (Mark < 40)은 Mark의 정확히 동일한 값에 대해 참입니다. Mark >= 40도 similarly 참입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
"(40)보다 작다"의 부정은 "(40) 이상"입니다. 경계값을 테스트해 봅시다: 점수 = 40는 Mark < 40를 거짓으로 만들므로, 그 부정은 참이며 40 >= 40도 참입니다.
놓칠 수 있는 점
←는 할당하고=은 비교합니다.IF Total = 0는 테스트입니다;Total = 0이 단일 행에 있으면 점수가 부여되지 않습니다.- 모든 구조는 닫힙니다:
ENDIF,ENDWHILE,UNTIL,NEXT,ENDCASE. 닫는 마커가 없으면 구조 점수를 잃습니다. - 사용 전에 선언하고, 누적 합계를
0로 초기화하십시오. WHILE는 절대 실행되지 않을 수 있으며,REPEAT은 항상 한 번 실됩니다. 작업에 맞는 루프를 선택하고 묻히면 이유를 말하십시오.
이해했습니다
- 알고리즘의 단계는 모호하지 않고, 결정론적이며, 유한하며, 효과적이어야 합니다. 데이터를 식별자 표에 계획하십시오.
- 세 가지 구조: 순서, 선택(
IF/CASE), 반복(FOR/WHILE/REPEAT);WHILE는 시작 전에 테스트하고,REPEAT은 시작 후에 테스트합니다. - 플로우차트와 가짜코드는 동일한 알고리즘을 묘사하며, 단계별 세분화는 초안이 코딩 가능할 때까지 확장합니다
- 조건들은 논리 문장입니다:
AND,OR,NOT로 연결된 비교들