PREP은 알고리즘 문제를 풀기 위해 접근 방법을 구체화하고 계획을 세우는 과정을 의미합니다. PREP는 Problem, Requirements, Examples, Plan의 약어로 각각 다음과 같은 의미를 가지고 있습니다:
Problem
(문제 이해):
Requirements
(요구사항 분석):
Examples
(예시 분석):
Plan
(계획 수립):
PREP 과정을 거치면 문제를 더 명확하게 이해하고 문제 해결에 필요한 알고리즘을 설계하는 데 도움이 됩니다. 이 단계를 거치면 문제 해결에 효율적이고 체계적인 접근 방법을 구축할 수 있습니다.
PREP 접근 방법을 실제 문제에 적용하여 예시를 들어보겠습니다. 아래 문제를 예시로 사용하겠습니다.
문제: 배열에서 가장 큰 수 찾기
주어진 정수 배열에서 가장 큰 수를 찾아 반환하는 함수를 구현하세요.
Problem (문제 이해):
Requirements (요구사항 분석):
Examples (예시 분석):
[1, 3, 2, 9, 5]
→ 가장 큰 수는 9입니다.[-1, -5, -2, -9, -3]
→ 가장 큰 수는 -1입니다.Plan (계획 수립):
다음은 PREP 접근 방법을 적용한 구현 예시입니다:
const findMaxNumber = (arr) => {
let max = arr[0]; // 가장 큰 수 초기화
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i]; // 현재까지의 가장 큰 수보다 큰 수를 발견하면 업데이트
}
}
return max;
};
console.log(findMaxNumber([1, 3, 2, 9, 5])); // 출력: 9
console.log(findMaxNumber([-1, -5, -2, -9, -3])); // 출력: -1
위 예시에서는 주어진 배열에서 가장 큰 수를 찾는 함수를 구현했습니다. PREP 접근 방법을 활용하여 문제를 이해하고 요구사항을 분석한 후, 예시를 통해 문제의 입력과 출력 관계를 파악하고 최종적으로 함수를 구현했습니다.