강백호같은개발자

수도코드(pseudocode) 작성하는 방법 본문

- 배움은 개발을 거들뿐(TIL)

수도코드(pseudocode) 작성하는 방법

쨜리 2020. 6. 7. 09:48

수도코드(pseudocode) 작성하는 방법

 

수도코드란?

수도코드 또는 의사코드로 불리는 이 방법은 

실제로 코딩으로 들어가기 전에 우리의 언어로 만들어질 코딩의 흐름을 정리해보는 것이다.

 

 

수도코드의 장점?

내가 생각해본 수도코드의 장점은 

 

우선 가설과 검증 이라는 사이클로 효율적으로 답을 찾아나갈 수 있다는 것이다.

물론, 수도코드 없이 다 기억이 된다면 좋겠지만,

그렇지 않은 경우 어떤 논리 흐름으로 코드를 짜 나갔는지를 기록하는 것은 매우 도움이 된다.

 

둘째로 협업하는 경우 함께 코딩하는 사람과 이해도를 맞추는데 도움이 된다.

협업을 하는데 있어서 무엇보다 중요한 것은

같은 해결방법을 가지고 같이 고민하는 것이라고 생각한다.

서로 다른 정보를 바탕으로 다른 고민을 하고 있다면, 

팀이라고 할 수 없고, 협업이라고 할 수 없을 것이다. 

 

수도코드 작성 방법

코드스테이츠의 같은 기수의 동기가 공유해준 파일의 내용을 요약해본다.

 

작성 규칙 1 : 구체적 방법보다는 무슨 일을 할 것인가?만을 기술한다.

작성 규칙 2 : 입력, 치환, 산술, 관계, 논리, 출력의 기본기능 단위로 한번에 한가지만 기술한다.

작성 규칙 3 : 목적어 + 동사 형식으로 기술한다.

작성 규칙 4 : 처리단계 레벨은 되도록 3단계까지만 표현한다.(들여쓰기 3단계)

 

작성 순서 1 : 문제 전체에 대한 처리를 순차적으로 표현

작성 순서 2 : 순차적인 표현에서 선택(분기)이나 반복이 필요한 부분에 추가하기

 

 

예시 수도코드

문제 : 이름과 국어, 영어 점수를 입력(input)받고, 총점과 평균을 계산하고, 평균을 기준으로 평가하고, 학생 성적을 출력한다. (output)

 

//작성 순서1 : 
//1. 이름, 국어, 영어점수를 입력받는다.
//2. 번호를 매긴다.
//3. 총점을 구한다.
//4. 평균을 구한다.
//5. 평가를 한다.
//6. 평가를 출력한다.
//7. 끝낸다.
//작성순서2 :
//1. 이름, 국어, 영어점수를 입력받는다.
//2. 번호를 매긴다.
//3. 총점을 구한다.
//4. 평균을 구한다.
//5. 평균이 70점 이상인지 판단한다.(선택/분기)
//  5.1 참이면 통과한 것으로 판단
//  5.2 거짓이면 실패인 것으로 판단
//6. 평가를 출력한다.
//7. 끝낸다.
//작성순서3 :
//1. 파일의 끝이 아닌 동안 방복한다.(반복)
//  1.1 이름 국어, 영어점수를 입력받는다.
//  1.2 번호를 매긴다.
//  1.3 총점을 구한다.
//  1.4 평균을 구한다.
//  1.5 평균이 70점 이상인지 판단한다.(선택/분기)
//    1.5.1 참이면 통과한 것으로 판단
//    1.5.2 거짓이면 실패인 것으로 판단
//  1.6 평가를 출력한다.
//2. 끝낸다.

예시를 이렇게만 봤을 때 잘 이해가 되진 않아서 직접 짜보았다.

 

직접 짜본 수도코드 

문제 :

n을 매개변수로 받아 0 부터 n 까지 모든 수의 총 합을 반환하는 함수를 작성하세요.

 

//작성순서 1 :(거의 의식의 흐름 수준)
//1. 매개변수로 n을 받는다.
//2. 0에서 1씩 더한다.
//3. 더한 값은 저장한다. 
//4. n번째 1을 더했을 때 멈춘다.
//5. 저장된 값을 반환한다.
//작성순서2 :
//1. n까지 반복하여 더한다.
//  1.1 반환할 변수 sum 을 선언하고 0을 대입한다.
//  1.2 n을 입력받는다.
//  1.3 sum에 0부터 1씩 더한다.
//  1.4 n번째 1을 더했을 때 멈춘다.
//2. 저장된 sum 값을 반환한다.

이렇게 구현해본 코드는 다음과 같다.

function sum(n) {
  let sum = 0;
  for(let i=0; i<=n; i++){
    sum = sum + i;
  }
  return sum;
}

 

수도코드를 작성하면서 어려웠던 것을 다시 한번 정리해본다면,

1. 수도코드 작성은 한번만에 적히는 건 아니다. 두번 세번 수정해야한다.

2. 반환할 값에 대해서 고민을 해본다.

 

 

정도가 있는 것 같다.

 

앞으로도 신경써보면서 수도코드를 작성하는 연습을 한다면,

보다 나은 코딩을 하는데 도움이 되지 않을까 생각이 든다.

 


다양한 자료와 글을 참고하여 배우고 있는 개발 뉴비의 블로그입니다. 
수정 보완할 것이 있다면 부담없이 댓글 남겨주세요 :)

 

 

수도코드(pseudocode) 작성하는 방법

Comments