CS50 x edwith 강의를 들으며 정리한 공부 포스팅입니다.
핵심 개념
- 프로그래밍 언어
- 의사 코드
- 할당
- 들여쓰기
프로그래밍 언어
- 기계가 알아들을 수 있도록 명령을 내리기 위해 사용되는 언어
- 자연어(natural language), 의사 코드(Pseudocode), 순서도(flowchart) 등.
의사 코드
- 프로그래밍 언어보다 문법적 제약을 적게 받으므로 알고리즘 표현에 많이 사용됨.
예제: 방 안에 있는 사람의 수를 세기 위한 알고리즘
의사 코드의 예시
- 0부터 시작하여 방 안에 있는 각각의 사람을 셀 때마다 1씩 더한다.
- 할당
- 1번 줄 처럼 n 이라는 이름을 부여하고 0 값을 넣어주는 것.
- 코드 내에서 값을 저장할 수 있는 공간 n이 마련되고 0이라는 초기값이 들어가게 됨.
- 마지막 줄에서 n이 n+1이 되도록 다시 할당.
- 그래서 한 사람씩 늘어날때 마다 1씩 증가시켜 줄 수 있음.
- 결과적으로, 이 알고리즘의 마지막에서 n은 방 안에 있는 사람 수가 됨.
[더 복잡하지만 효율적인 의사코드]
- 방 안의 모든 사람을 일으켜 세우고 그들에게 숫자 1을 부여한다.
- 일어서 있는 다른 사람과 짝을 짓고 그들이 갖고있던 숫자를 더한 후 한 사람씩 앉는다.
- 이 과정을 한 사람이 남을때까지 반복하면 마지막 남은 사람에게 할당된 숫자가 방 안의 총 인원 수가 될 것이다.
- 들여쓰기
- 어떤 코드 블록이 어떤 문장에 포함되는지 알 수 있도록 하는 것.
- 위의 예를 보면 4~9번줄은 3번 줄에 작성된 상태가 될때까지 반복되어야 한다는 뜻.
- 9번째 줄의 ‘앉고 아무것도 하지 마라’는 8번째 줄의 ‘만약 당신이 선택된다면’일 경우에 실행되어야 함.
의사 코드의 요소
- 의사 코드를 작성하는 올바른 방법이나 어떻게 작성해야 하는지 정의한 문법은 없음.
- 할당, 들여쓰기, 조건문, 반복문 등 프로그래밍 언어에서도 중요한 개념을 포함하기도 함.
- 따라서, 의사코드는 문법 걱정 없이 알고리즘을 표현할 수 있는 유용한 방법이고
- 프로그램의 논리를 이해하는데 더 효과적인 방법이다.
Comments