프로그래머스 모의고사
본문 바로가기
알고리즘 모음집/New 알고리즘

프로그래머스 모의고사

by KyeongMin 2020. 7. 20.
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 ��

programmers.co.kr

흠 완전 탐색의 완전 기초라고 생각한다 그냥 조건에 따라서 처음부터끝까지 검색해주고 조건을 출력해주면 된다.

 

물론 처음 알고리즘을 접하면 어려울 수 있지만 반복문의 어느정도 개념을 알면 풀기 쉬운 문제 같다.

#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

댓글