728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42840
흠 완전 탐색의 완전 기초라고 생각한다 그냥 조건에 따라서 처음부터끝까지 검색해주고 조건을 출력해주면 된다.
물론 처음 알고리즘을 접하면 어려울 수 있지만 반복문의 어느정도 개념을 알면 풀기 쉬운 문제 같다.
#include<stdio.h>
#include<iostream>
#include <string>
#include <vector>
using namespace std;
int mathGiveUp[4][10] = {
{0,},
{1,2,3,4,5,},//수포자 1
{2,1,2,3,2,4,2,5},//수포자2
{3,3,1,1,2,2,4,4,5,5}//수포자3
};
int mathIdx[4] = {0,5,8,10 };//수포자 1,2,3
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> correctCnt;
correctCnt.push_back(0);//0번 부터 시작이라 먼저 넣음
int max = 0x80000000;
for (int i = 1; i <= 3; i++) {
int idx = 0;
int cnt = 0;
for (int j = 0; j < answers.size(); j++) {
if (idx == mathIdx[i])idx = 0;
if (answers[j] == mathGiveUp[i][idx]) {// 답이 맞으면 cnt 증가
cnt++;
}
idx++;
}
correctCnt.push_back(cnt);//각 수포자가 맞은 문제 갯수 저장
max = max < cnt ? cnt : max;//최대값 찾기
}
for (int i = 1; i <= 3; i++) {
if (max == correctCnt[i]) {
answer.push_back(i);
}
}
return answer;
}
위의 소스를 찹고해서 해봐도 좋다 수포자들의 찍는 방식을 배열로 만들어서
그냥 검사하는식으로 결과를 했다
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
프로그래머스 숫자 야구 (0) | 2020.07.22 |
---|---|
14503 로봇 청소기 (0) | 2020.07.22 |
프로그래머스 소수찾기 (0) | 2020.07.20 |
17070 파이프 옮기기1 (0) | 2020.07.20 |
프로그래머스 여행 경로 (0) | 2020.07.17 |
댓글