특정한 문제를 해결하기 위한 명확한 명령의 집합으로서, 주어진 입력에 대하여 유한한 시간 내에 원하는 출력을 생성하는 절차
알고리즘으로 설계해서 해결할 수 있는 문제
각 명령은 구체적이고 모호하지 않아야 합니다.
모호한 명령
함수 findElements(배열):
배열 안의 숫자들을 조합하여
합이 0이 되는 세 수를 찾아서
그 세 수를 반환하라
모호하지 않는 명령
함수 findElements(배열):
결과 = 빈 리스트
배열을 오름차순 정렬
for i = 0 to 배열의 길이 - 3 do
// 중복된 값 건너뛰기
if i > 0 and 배열[i] == 배열[i-1] then
continue
왼쪽 = i + 1
오른쪽 = 배열의 길이 - 1
while 왼쪽 < 오른쪽 do
합 = 배열[i] + 배열[왼쪽] + 배열[오른쪽]
if 합 == 0 then
결과에 [배열[i], 배열[왼쪽], 배열[오른쪽]] 추가
// 중복된 값을 건너뛰기
while 왼쪽 < 오른쪽 and 배열[왼쪽] == 배열[왼쪽+1] do
왼쪽 증가
end while
while 왼쪽 < 오른쪽 and 배열[오른쪽] == 배열[오른쪽-1] do
오른쪽 감소
end while
왼쪽 증가
오른쪽 감소
else if 합 < 0 then
왼쪽 증가
else
오른쪽 감소
end if
end while
end for
결과 반환