본문 바로가기
엔트리메뉴/엔트리코딩시험-알고리즘

엔트리-최소값찾기

by flycoding 2022. 9. 1.
반응형

엔트리 -최소값찾기

 

엔트리 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다.

 

알고리즘에서 가장 기본이 값을 찾는 것이다. 검색에서 가장 많이 사용하는 내용이 최대값 찾기, 최소값 찾기이다.

이번 글에서는 최소값을 찾아보자. 최소값을 검색하기 위해 기본적으로 리스트를 사용할 것이며, 리스트 내의 값들 중에서 가장 작은 값을 찾아보자.

 

이미 엔트리로 최대값찾기를 작성해보았다면, 스스로 최소값찾기 프로그램을 작성할 것을 추천한다.  변수를 선언하고, 리스트에 값을 추가하고 최소값을 찾는 과정을 스스로 엔트리로 블록코딩을 해보는 것을 추천한다. (Just do it!!!)

 

이번 글에서는 최소값을 찾는 것도 중요한 개념이지만, 코딩 입장에서 보면 인덱스를 활용하여 리스트를 관리하고 처리하는 방법 등을 학습하는 것도 매우 중요한 포인트이다. 그래서 최대값, 최소값 같이 글을 작성할 까 하다가 별도로 작성하는 것은 반복적인 리스트의 인덱스 처리를 경험하여 노하우를 얻기를 바라는 마음에서이다.

 

요구사항

* 리스트에 10개의 1-100까지 중 난수 값을 입력한다.

* 난수 10개를 입력하는 함수를 정의한다.

* 10개의 리스트에서 최소값을 찾는 함수를 정의한다.

 

* 변수 

  - num 리스트변수 : 1~100까지 난수값을 저장하는 리스트 변수이다.

  - min 변수 : 최소값을 저장하는 변수이다.

  - i : 인덱스 임시 변수, 리스트의 각 항목을 가져오거나 참조할 때 사용하는 변수이다.

 

* 검색

  - 리스트 첫번째 항목을 min에 저장한다.

  . 반복 (i>num항목의개수)

  - i =2

  - 리스트 두번째 항목부터 min값과 비교하여, 항목값이 작으면 min값에 항목값으로 변경한다.

    - i =i+1

 

분석 및 설계

. 변수만들기

  - num 리스트변수 : 1~100까지 난수값을 저장하는 리스트 변수이다.

  - min 변수 : 최소값을 저장하는 변수이다.

  - i : 인덱스 임시 변수, 리스트의 각 항목을 가져오거나 참조할 때 사용하는 변수이다.

 

. 초기화

  - 10번 반복하기

     - 1~100사이의 난수를 num 리스트에 추가하기

 

. '최소값 찾기'

  - i=1

  - min = num(i)항목 (i=1)

  - 9번반복

    - i=i+1

     - if num(i)  < min

       - min = num(i)

  - 말하기(min)

 

블럭코딩

 

. 최소값찾기 메인 프로그램
  - 수입력 함수 호출
  - 최소값 함수 호출
   - 최소값 말하기

 

엔트리-최소값찾기 메인 호출

 

. 수입력 함수
  . 10회 반복하기
    - 1~100 난수 를 num 리스트에 추가하기

 

엔트리-최소값찾기 초기화

 

엔트리-num리스트 초기값

 

최소값 함수 정의
  - i=1
  - min = num(i)항목 (i=1)
  - 9번반복
    - i=i+1
     - if num(i)  < min
       - min = num(i)
  - 말하기(min)

 

엔트리-최소값 함수

 

 

* 디버깅

 

엔트리-num리스트 초기값

 

하기 표는 최소값 함수가 호출될 때 동작하는 순서를 아래 표로 요약 정리해보았다.

 

i=1, num(1)=7,  min에 num(1)을 저장한다. (40)

이제 반복문을 실행해보자

i=2

if num(2) < min  ; if 58 < 40  (false)

 

i=3,

if num(3) < min  ; if 87 < 40 (false)

 

i=4,

if num(4) < min  ; if 34 < 40 (true)

  min = 34

 

i=5,

if num(5) < min  ; if 19 < 34 (true)

  min = 19

 

i=6,

if num(6) < min  ; if 24 < 19 (false)

 

i=7,

if num(7) < min  ; if 48 < 19 (false)

 

i=8,

if num(8) < min  ; if 66 < 19 (false)

 

i=9,

if num(9) < min  ; if 14 < 19 (true)

  min = 14

 

i=10,

if num(10) < min  ; if 3 < 14 (true)

  min = 3

 

min=3값이다.

엔트리-num리스트 초기값
i num(i) min
1 40 40
2 58 40
3 87 40
4 34 34
5 19 19
6 24 19
7 48 19
8 66 19
9 14 14
10 3 3

 

결과 : min=3값

 

* 실행 결과물

1~100까지 난수를 num 리스트 변수에 삽입한 후에,

최소값 함수가 호출이 되면 min 변수에 최소값이 저장된다.

 

엔트리-최소값찾기 실행결과 화면

 

엔트리를 활용하여 최소값찾기 프로그램은 쉬운 것 같지만 실제로는 많은 프로그램의 기능과 능력이 필요하다.

본 글을 통해 리스트와 리스트 변수를 처리하는 과정 및 함수를 정의하고 호출하는 프로그램 방법을 활용하였다.

 

먼저 리스트 변수를 활용하였고,  간단한 i변수인 인덱스 처리하는 과정을 이해하는게 매우 중요한다.

상기 '디버깅'  의 과정을 천천히 분석하고 이해할 필요가 있다. i값이 변화하면서 num 리스트항목의 값을 조회하고 비교하는 개념을 꼭 이해하기를 바란다.

 

다시 한번 강조해서 말하지만, 변수의 값이 각 프로그램 단계별 순차적으로 어떻게 변화하는지 추척하는 것이 매우 중요하다. 블럭을 하나씩 쌓으면서 변수 볼륨 값의 변화를 살펴보자. 코딩은 눈으로 보면서 이해하고 학습하지만 직접 블럭을 쌓으며 이해하고 학습하는 것이 더 효과적이며 창의와 이해의 개념이 ~쑥 늘어납니다. 

앞으로의 여러분의 모습을 기대합니다.

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSen

 

반응형

댓글