오늘의 학습 주제는 알고리즘 문제 해결에서 기본적인 기법 중 하나인 브루트 포스(Brute-force) 알고리즘이었다.
이는 완전 탐색(Complete Search)의 일부이다
배열에서 특정 값을 찾는 문제에서, 브루트 포스 알고리즘은 배열 전체를 탐색하여 값을 찾는 방식으로 문제를 해결합니다.
function findIndex(arr, target) {
for(let i = 0; i < arr.length; i++){
if (arr[i] === target) return i;
}
return -1;
}
프로그래머스 모의고사 문제 풀이
function solution(answers) {
let patterns = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]];
let scores = [0, 0, 0];
let result = [];
for (let i = 0; i < answers.length; i++) {
for (let j = 0; j < patterns.length; j++) {
if (answers[i] === patterns[j][i % patterns[j].length]) {
scores[j]++;
}
}
}
let maxScore = Math.max(...scores);
scores.forEach((score, index) => {
if (score === maxScore) {
result.push(index + 1);
}
});
return result;
}
solution([1, 2, 3, 4, 5]);
오늘의 학습을 통해 브루트 포스 알고리즘의 기본 개념과 사용 예시에 대해 배웠습니다. 이러한 기본적인 알고리즘 이해는 더 복잡한 문제 해결의 기초가 된다.
조금씩 조금씩 계속 공부해나가면 나중에 나의 무기이자 자산이 될 것이다.