[SEB BE] Section 2. 의사코드(pseudocode) 작성법

박두팔이·2023년 1월 19일
0

알고리즘

목록 보기
5/12

의사코드 작성법

의사코드란 코드를 작성하기 전 우리의 언어로 프로그램이 작동하는 논리를 먼저 작성하는 것이다.
의사코드를 작성하기 전, 문제를 이해하고 논리적으로 이해한 뒤 컴퓨팅 사고로 전환하여 의사코드를 작성한다.

의사코드는 왜 필요한가?

  • 시간단축
  • 디버깅에 용이
  • 프로그래밍 언어를 모르는 사람과도 소통이 가능

의사코드는 왜 구체적으로 써야 하는가?

컴퓨터는 단순하다. 0과 1로만 이루어져 있는 계산기이다. 그러나 사람에겐 컴퓨터가 가질 수 없는 상상력이 있다.

예를 들어 마스크를 쓰는 방법을 사람들에게 알려준다면 "마스크로 코와 입쪽에 밀착시켜 착용하세요!" 라고 할 수 있다. 그러나 컴퓨터에게 이와같이 똑같이 설명한다면 알아들을까? 당연히 아니다!

1. 마스크를 꺼낸다.
2. 마스크 날개를 펼치고 ..어쩌고
3. 고정심 부분을 위로 잡고 ..
4. 만약 귀걸이 마스크라면 왼쪽귀와 오른쪽귀에 걸어준다.
5. 고정심을 코에 밀착되도록 누른다.
.
.
7. 만약 공기누설이 있다면 5번으로 돌아간다.
8. 공기누설이 없다면 마스크 착용 완료

등 이러한 동작을 명령해야 컴퓨터는 비로소 이해할 수 있을 것이다.

의사코드를 쓰는 양식!

  1. 사람이 이해할 수 있는 자연어(영어,한국어,일상에서 사용되는언어)만 사용
  2. 자연어 + 프로그램언어

예제를 통해 이해하기

사람: "배열의 각 요소들이 그 이전의 요소들의 합보다 큰지 확인해 줘!"
컴퓨터: ?...

사람이 궁금한 것은 {3,4,10}이라는 배열이 있을 때 4가 3보다 큰지, 10은 3과4를 더한 값보다 큰지가 궁금한 것이다.

public Boolean 이전의요소들보다크니_메서드(int[] arr) {

// 변수 sum을 선언하고, 0번째 요소를 할당한다.

// 1번째 요소부터, 가장 마지막 요소까지 순회하는 반복문을 만든다.

	// 만약 arr[i]가 sum보다 작거나 같으면 false를 반환한다.

	// 그렇지 않으면, 기존의 sum에 arr[i]를 더한다.

//반복문이 끝나면 true를 반환한다.

}

여기까지는 수도코드의 작성이다.

public Boolean 이전의요소들보다크니_메서드(int[] arr) {

	int sum = arr[0];

	for(int i=1; i<arr.length; i++{
		if(arr[i]<=sum) return false;
   		else sum += arr[i];
    }
    return true;
}

수도코드를 코드로 옮겨보았다.

profile
기억을 위한 기록 :>

0개의 댓글