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

엔트리-십진수를이진수로변환

by flycoding 2022. 9. 9.
반응형

엔트리 -십진수를이진수로변환

 

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

 

엔트리 코드로 십진수를 이진수로 변환하는 프로그램을 작성해 보자.

 

요구사항

십진수를 이진수로 변환하는 알고리즘은 십진수를 2로 나눈후 몫과 나머지를 각각 저장한다.

다시 몫을 2로 나누어 몫과 나머지를 저장한다.  몫이 0일때하여 나머지를 구한다.

 

분석 및 설계

. 변수만들기

  - n : 변환할 십진수로, 키보드로 입력받아 저장한다.

  - b : 임시 인진수를 저장하는 리스트 변수이다.

  - result : 최종 변환되는 이진수를 저장하는 리스트 변수이다.

  - i : 인덱스 변수이다.

 

 

. 초기화

  - n : 키보드로부터 숫자를 입력받아 저장한다.

  - i = 0

  - b 리스트 변수 모두 삭제하기

  - result 리스트 변수 모두 삭제하기

 

 

. 십진수를 이진수로 변환하는 알고리즘

  - n = 0 까지 반복하기

    . i = i +1

     . n/2의 나머지를 b 리스트에 추가

      . n = n/2

 

. b 리스트를 result에 역순으로 저장한다.

  . i = b 의 길이 값을 저장한다.

  . i=0 까지 반복하기

    - result에 b의 i번째 리스트 추가하기

    - i = i=1

 

 

블럭코딩

 

. 초기화
  - n : 키보드로부터 숫자를 입력받아 저장한다.
  - i = 0
  - b 리스트 변수 모두 삭제하기
  - result 리스트 변수 모두 삭제하기

 

엔트리-십진수를이진수변환 변수초기화

 

 

. 십진수를 이진수로 변환하는 알고리즘
  - n = 0 까지 반복하기
    . i = i +1
     . n/2의 나머지를 b 리스트에 추가
      . n = n/2

 

엔트리-십진수를이진수로변환 알고리즘

 

 

. b 리스트를 result에 역순으로 저장한다.
  . i = b 의 길이 값을 저장한다.
  . i=0 까지 반복하기
    - result에 b의 i번째 리스트 추가하기
    - i = i=1

 

엔트리-십진수를이진수로 역순저장

 

 

* 디버깅

* 초기화

. n=8

. i=0

. b : empty

 

 

[1스텝]

n=0까지 반복하기 (8=0, false)

b : 0  (8/2 -> 0, 나머지)

n = 2 (8/2 => 4, 몫)

 

[2스텝]

n=0까지 반복하기 (4=0, false)

b : 0 0  (4/2 -> 0, 나머지)

n = 1 (4/2 -> 2, 몫)

 

[3스텝]

n=0까지 반복하기 (2=0, false)

b : 0 0 0  (2/2 ->0, 나머지)

n = 0 (2/2 -> 1, 몫)

 

[4스텝]

n=0까지 반복하기 (1=0, false)

 

b : 0 0 0 1  (1/2 -> 1, 나머지)

n = 0 (1/2 -> 0, 몫)

 

[5스텝]

n=0까지 반복하기 (0=0, treu)

 

* b리스트(0001) 를 result(1000)리스트에 역순으로 저장한다.

[1스텝]

i=4

i=0 까지 반복하기(4=0, false)

result <- b(4) ;  (1)

i=i-1  (3)

 

[2스텝]

i=0 까지 반복하기(3=0, false)

result <- b(3) ;  (1 0)

i=i-1 (2)

 

[3스텝]

i=0 까지 반복하기(2=0, false)

result <- b(2) ;  (1 0 0 )

i=i-1 (1)

 

[4스텝]

i=0 까지 반복하기(1=0, false)

result <- b(1) ;  (1 0 0 0)

i=i-1 (0)

 

[5스텝]

i=0 까지 반복하기(0=0, true)

 

result : (1 0 0 0)

 

* 실행 결과물

변환할 십진수를 키보드로부터 입력받아 변수 n에 저장한다.

 

엔트리-십진수를이진수로변환 숫자입력

 

십진수 14을 이진수로 변환한 결과는 (1110) 이다.

결과값은 result 리스트에 저장되어 있다. (1110)

 

엔트리-십진수를이진수로변환 실행결과 화면

 

엔트리를 통해 십진수를 이진수로 변환하는 프로그램을 작성하였다. 사람이 수학으로 십진수를 이진수로 변환하는 것은 그렇게 어렵지 않지만, 프로그램 코딩으로 구현하려면 다양한 문제 해결 방법을 생각하고 고민해야 한다. 이런데에 코딩하는 재미가 있는 것 같다. 본 프로그램을 통해 이진수를 만드는 과정을 하나씩 살펴보았다. 

 

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

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

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSen

 

반응형

'엔트리메뉴 > 엔트리코딩시험-알고리즘' 카테고리의 다른 글

엔트리-버블정렬  (0) 2022.09.11
엔트리-선형검색  (1) 2022.09.10
엔트리-이진수를십진수로변환  (1) 2022.09.08
엔트리-피보나치수열  (1) 2022.09.07
엔트리-최소공배수  (0) 2022.09.06

댓글