콘텐츠로 이동

도전! 나만의 알고리즘 설계하기

🎯 이 장에서 배우는 것

  • [ ] 주어진 문제를 분석하여 알고리즘을 설계할 수 있다
  • [ ] 순서도로 알고리즘을 표현할 수 있다
  • [ ] 설계한 알고리즘을 코드로 구현할 수 있다

📚 핵심 개념

개념: 알고리즘 설계 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 → 모두 같은 경우도 확인!


✅ 점검하기

  1. 알고리즘 설계 4단계를 순서대로 말할 수 있나요?
정답 확인문제 분석 → 순서도 작성 → 코드 구현 → 테스트
  1. 같은 문제도 다른 알고리즘으로 풀 수 있을까요?
정답 확인네! max() 함수를 쓰거나, 리스트 정렬을 쓰는 등 다양한 방법이 있어요.

🔗 다음 장 미리보기

축하해요! 🎉 Part 3를 완료했어요. 다음은 오류 처리와 디버깅을 배워봅니다!