티스토리 뷰
문제 링크
풀이
브루트-포스 문제다.
요약하자면,
포기자1, 포기자2, 포기자3의 찍는 패턴을 미리 string형으로 저장 후, 맞은 개수만큼 count를 증가시킨다.
이후, 최고 갯수를 구한다음 동점자가 있을 것을 예상해서 최고 갯수와 같은 포기자들을 answer 컨테이너에 넣어준다.
더보기
#include <string>
#include <vector>
using namespace std;
// 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;
string stu1 = "12345"; // 포기자1
string stu2 = "21232425"; // 포기자2
string stu3 = "3311224455"; // 포기자3
int count1 = 0; // 포기자1 개수
int count2 = 0; // 포기자2 개수
int count3 = 0; // 포기자3 개수
for(int i=0; i<answers.size(); i++){
char c = answers[i]+'0';
// 포기자들 맞은 개수 증가
if(c == stu1[i%5]) count1++;
if(c == stu2[i%8]) count2++;
if(c == stu3[i%10]) count3++;
}
// 최고 갯수 고르기
int maxCount = max(count1, count2);
maxCount = max(maxCount, count3);
// 최고 갯수랑 같으면 push
if(maxCount==count1) answer.push_back(1);
if(maxCount==count2) answer.push_back(2);
if(maxCount==count3) answer.push_back(3);
return answer;
}
728x90
반응형
'Programmers Solutions > previous' 카테고리의 다른 글
[프로그래머스, C++] 두 개 뽑아서 더하기 (0) | 2020.10.05 |
---|---|
[프로그래머스, C++] H-Index(정렬 파트) (0) | 2020.10.05 |
[프로그래머스, C++] K번째 수(정렬 파트) (0) | 2020.10.04 |
[프로그래머스, C++] 기능 개발(스택/큐 파트) (0) | 2020.10.04 |
[프로그래머스, C++] 주식 가격(스택/큐 파트) (0) | 2020.10.04 |
댓글