본문 바로가기
IT/Algorithm

무식하게 풀기(완전 탐색) - 모의고사

by 신인용 2020. 8. 31.
반응형

 

무식하게 풀기(완전 탐색) - 모의고사

 

 

문제 출저 - 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42840

 

 

 

 

풀이 생각

1. 누가 많이 맞았을까를 어떻게 알까?

 => 전부 채점해봐야함. 완전탐색으로 생각하자

2. 각 학생마다 정답 패턴의 크기 (1번=5, 2번=8, 3번=10) 가 다르다.

 => 각 학생 for문 돌때마다 크기 받아서 처리

3. 정답 주기를 돌려야함

 => answers가 7개라면 1번 학생은 6번째에서 다시 0번째로 와야함

 => %로 index 만들기

 => j%stuSize

4. 최대값을 어떻게 뽑을까?

 => *max_element 으로 학생들 중 max 정답수 뽑기

 => max와 같으면 answer에 넣기 (오름차순까지 해결됨)

 

 

 

my code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
const vector<vector<int> > stu = {
        {1,2,3,4,5}, {2,1,2,3,2,4,2,5}, {3,3,1,1,2,2,4,4,5,5}
    };
 
vector<int> solution(vector<int> answers) {
    vector<int> answer;
    
    int count[3= { 000 };
    
    size_t size = answers.size();
    for(int i = 0; i < 3++i){
        size_t stuSize = stu[i].size();
        for(size_t j = 0; j < size++j){
            if(stu[i][j%stuSize] == answers[j]) ++count[i];
        }
    }
    
    int max = *max_element(count, count+3);
    for(int i=0; i<3++i){
        if(max == count[i]) answer.push_back(i+1);
    }
    
    return answer;
}
cs

 

 

반응형

'IT > Algorithm' 카테고리의 다른 글

완전 탐색 - 소수 찾기  (0) 2020.09.03
DFS - 타겟 넘버  (0) 2020.09.01
무식하게 풀기(완전 탐색) - 게임판 덮기  (0) 2020.08.30
무식하게 풀기(완전 탐색) - 소풍  (0) 2020.08.30
무식하게 풀기 (완전 탐색)  (0) 2020.08.30

댓글