반응형
완전 탐색(Brute-Force)
: 컴퓨터의 빠른 계산 능력을 이용하여 모든 경우의 수를 전부 탐색하는 방법으로, 탐색하는 방식에 따라
Brute-Force(for문, if문을 이용하여 처음부터 끝까지 탐색하는 방법), DFS/BFS 그래프 알고리즘, 백트래킹 등이 있다.
단점으로는 완전탐색이다 보니 답을 찾는데 시간이 오래 걸린다.
프로그래머스: 모의고사 문제
https://programmers.co.kr/learn/courses/30/lessons/42840
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] answers) {
int[] studentA = {1,2,3,4,5};
int[] studentB = {2,1,2,3,2,4,2,5};
int[] studentC = {3,3,1,1,2,2,4,4,5,5};
int[] result;
int answerA = 0;
int answerB = 0;
int answerC = 0;
for(int i=0;i<answers.length;i++) {
if(studentA[i%studentA.length] == answers[i]) answerA++;
if(studentB[i%studentB.length] == answers[i]) answerB++;
if(studentC[i%studentC.length] == answers[i]) answerC++;
}
int maxCnt = Math.max(Math.max(answerA, answerB), answerC);
ArrayList<Integer> ar = new ArrayList<Integer>();
if(maxCnt == answerA) {
ar.add(1);
}
if(maxCnt == answerB) {
ar.add(2);
}
if(maxCnt == answerC) {
ar.add(3);
}
Collections.sort(ar);
result = new int[ar.size()];
for(int i=0;i < ar.size();i++) {
result[i] = ar.get(i);
}
return result;
}
}
반응형