[내일배움캠프 Spring_3기] Flow chart

jiiim_ni·2026년 1월 13일

문제 설명

사용자가 0을 입력할 때까지 숫자를 계속 입력받고
프로그램 종료 시 지금까지 입력한 숫자 중 가장 큰 숫자를 출력하는 문제를 플로우차트로 설계


입력 / 출력 정리

입력

  • 사용자로부터 정수 숫자를 반복해서 입력받는다.
  • 입력값이 0이면 입력을 종료한다.

출력

  • 프로그램 종료 시 지금까지 입력한 숫자 중 가장 큰 값(max)을 출력한다.

상태 (계속 들고 있어야 하는 값)

  • max : 지금까지 입력한 숫자 중 가장 큰 값
  • input : 사용자가 현재 입력한 숫자

조건 정리

종료 조건

  • 사용자가 0을 입력했을 때

분기 조건

  • 입력값이 0인지 여부
  • 입력값이 현재 max보다 큰지 여부

예외/가정

  • 입력은 정수라고 가정한다(음수 포함)
  • 최소 1개 이상의 숫자가 입력된다
  • 0은 최댓값 비교에 포함하지 않는다

흐름 설계

1) 시작 시 한 번만 수행

  • max를 아주 작은 값으로 초기화한다.

    첫번째로 입력되는 숫자가 정상적으로 max로 저장되도록 하기 위함.
    만약 max를 0으로 초기화하면, 입력값이 음수일 경우 실제로 입력되지 않은 0이 최댓값으로 출력될 수 있음

2) 반복 구조

  1. 숫자를 입력받음
  2. 입력값이 0인지 확인
    예 -> max를 출력하고 프로그램 종료
    아니오 -> 다음 조건으로 진행
  3. 입력값이 max보다 큰지 확인
    예 -> max = 입력값 으로 상태 업데이트
    아니오 -> 아무 작업도 하지 않음
  4. 어떤 경우든 다시 숫자를 입력받음

    max가 갱신되더라도 프로그램은 종료되지 않으며, 오직 0이 입력될 때만 종료된다.

3) 종료 시

  • max를 출력한다
  • 프로그램을 종료한다

결과

이번 연습문제를 하면서
종료 조건과 상태 업데이트 조건은 완전이 다른 개념이라는 것을 깨달았다.

입력값 == 0 -> 종료조건
입력값 > max -> 상태 업데이트 조건

max = 입력값 이후에도 반드시 반복 구조로 돌아가야함

플로우차트를 직접 설계해보니 조건문과 반복문의 개념을 더 잘 이해할 수 있었다.

0개의 댓글