도전! 나만의 알고리즘 설계하기¶
🎯 이 장에서 배우는 것¶
- [ ] 주어진 문제를 분석하여 알고리즘을 설계할 수 있다
- [ ] 순서도로 알고리즘을 표현할 수 있다
- [ ] 설계한 알고리즘을 코드로 구현할 수 있다
📚 핵심 개념¶
개념: 알고리즘 설계 4단계¶
"요리를 만들기 전에 레시피를 먼저 정리하는 것" 과 같아요!
flowchart LR
A[🔍 문제 분석] --> B[📝 순서도 작성]
B --> C[💻 코드 구현]
C --> D[✅ 테스트]
🔨 따라하기¶
도전 과제: 최댓값 찾기¶
문제: 3개의 숫자 중 가장 큰 수를 찾아라!
Step 1: 순서도 설계¶
flowchart TD
A[시작] --> B[a, b, c 입력]
B --> C{a > b?}
C -->|Yes| D{a > c?}
C -->|No| E{b > c?}
D -->|Yes| F[최댓값 = a]
D -->|No| G[최댓값 = c]
E -->|Yes| H[최댓값 = b]
E -->|No| I[최댓값 = c]
F --> J[출력]
G --> J
H --> J
I --> J
J --> K[끝]
Step 2: 코드로 구현¶
a, b, c = 5, 9, 3
if a > b:
if a > c:
max_val = a
else:
max_val = c
else:
if b > c:
max_val = b
else:
max_val = c
print(f"최댓값: {max_val}")
실행 결과:
최댓값: 9
📝 전체 코드¶
# 나만의 알고리즘: 3개 숫자 중 최댓값 찾기
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
c = int(input("세 번째 숫자: "))
if a > b and a > c:
max_val = a
elif b > c:
max_val = b
else:
max_val = c
print(f"최댓값: {max_val}")
⚠️ 주의할 점¶
테스트를 다양하게!
- 5, 9, 3 → 중간값이 최댓값
- 9, 5, 3 → 첫 번째가 최댓값
- 3, 3, 3 → 모두 같은 경우도 확인!
✅ 점검하기¶
- 알고리즘 설계 4단계를 순서대로 말할 수 있나요?
정답 확인
문제 분석 → 순서도 작성 → 코드 구현 → 테스트- 같은 문제도 다른 알고리즘으로 풀 수 있을까요?
정답 확인
네! max() 함수를 쓰거나, 리스트 정렬을 쓰는 등 다양한 방법이 있어요.🔗 다음 장 미리보기¶
축하해요! 🎉 Part 3를 완료했어요. 다음은 오류 처리와 디버깅을 배워봅니다!