세션 일정 : 26년 3월 19일 (목)
Video Conferencing, Web Conferencing, Webinars, Screen Sharing
<aside>
</aside>
<aside>
<aside>
4,000원이다.5%가 적립된다.0을 입력하면 주문을 종료하고, 총 결제 금액과 적립된 포인트를 출력한다.
</aside><aside>
입력/출력 정리
1) 입력 :
- 주문한 커피 잔 수 (정수)
- 종료 신호: 0 입력 시 주문 종료
2) 출력 :
- 총 결제 금액 (totalAmount)
- 총 적립 포인트 (totalPoint)
3) 상태 (계속 들고 있어야 하는 값) :
- totalAmount : 지금까지 누적된 결제 금액
- totalPoint : 지금까지 누적된 적립 포인트
조건 정리
1) 종료 조건 (끝나는 시점):
- 사용자가 주문 수량을 0으로 입력한 경우
2) 분기 조건 (갈라지는 기준):
- 주문 수량이 0인가? (예 → 종료, 아니오 → 계속 주문)
- 주문 수량이 음수인가? (예 → 예외 처리)
3) 예외 / 에러 조건 (정상 범위):
- 주문 수량이 음수인 경우 "잘못된 입력입니다" 출력 후 다시 입력
- (선택)숫자가 아닌 입력일 경우 재입력 요청 처리
흐름 설계
1) 시작할 때 한 번만:
- totalAmount = 0
- totalPoint = 0
2) 반복:
1. 주문할 커피 잔 수(정수)를 입력받는다.
2. 입력값이 0인지 확인한다.
- 예: 지금까지의 totalAmount와 totalPoint를 출력한 뒤 반복을 종료한다.
- 아니오: 해당 수량 * 4000원을 결제 금액에 더한다.
3. 포인트 적립 계산:
- 결제 금액의 5%를 totalPoint에 더한다.
4. 다시 주문 입력 단계로 돌아간다.
3) 종료할 때:
- totalAmount 출력
- totalPoint 출력
- 프로그램을 종료한다.
</aside>
Live 실습
</aside>
<aside>
<aside>
실제 서비스에서 가장 많이 쓰이는 패턴
<aside>
[시나리오] 버스 요금 입력 프로그램
0 ~ 3000원이다.<aside>
논리 구성 및 흐름 설계
입력 :
- 입력한 요금(price)
출력 :
- 정상 범위면 “요금 확인 완료”
- 비정상이면 “잘못된 요금입니다”
상태 :
- 없음(단순 검증)
조건 :
- 종료 조건: 0 ≤ price ≤ 3000일 때
- 분기 조건: 정상 범위인지 / 아닌지
- 예외 조건: 음수, 3000 초과 값
</aside>
</aside>
<aside>
알고리즘/문제풀이에서 가장 자주 나오는 기본 패턴
<aside>
[시나리오] 하루 동안 걸음 수 합산 프로그램
<aside>
논리 구성 및 흐름 설계
입력 :
- 걸음 수(step)
출력 :
- 총 걸음 수(totalSteps)
상태 :
- totalSteps
조건 :
- 종료 조건: 입력값이 0
- 분기 조건: 0인가 / 0이 아닌가
- 예외 조건: 음수 걸음 입력 시 경고 후 재입력 (선택)
</aside>
</aside>
<aside>
“기능이 여러 개 있는 프로그램”의 기본 틀
<aside>
[시나리오] 전자사전(단어 뜻 조회) 프로그램
메뉴를 출력한다.
단어 등록
단어 조회
종료
사용자는 번호를 입력한다.
1번: 단어와 뜻을 등록한다.2번: 단어를 입력하면 뜻을 출력한다.0번: 프로그램 종료*간단 버전이므로 실제 저장은 생략
</aside>
<aside>
논리 구성 및 흐름 설계
입력 :
- 메뉴 번호(menu)
- 단어(word)
- 뜻(mean)
출력 :
- 등록/조회 결과 메시지
상태 :
- 단어 사전(dictionary) — 간단하게는 한 쌍(word, mean)
조건 :
- 종료 조건: menu == 0
- 분기 조건: 1/2/0 중 무엇을 선택했는가
- 예외 조건: 메뉴 번호 범위 밖
</aside>
</aside>
Live 실습
</aside>
<aside>
큰 시스템 하나를, 모듈(기능) 단위로 쪼개서 Flowchart 여러 개로 나눠서 설계하는 것
<aside>
8자 이상이어야 함<aside>
</aside>
<aside>
</aside>
Live 실습
</aside>
<aside>
</aside>