본문 바로가기

알고리즘문제풀이

[백준 2966] 찍기

반응형

문제:https://www.acmicpc.net/problem/2966



1)문제분류

-부루스포트

2)문제해결

-간단한 구현 문제

-각 사람마다 패턴을 배열에 담은 후, 문제와 패턴을 함께 포문으로 돌면서 카운트를 세면된다.




#include<iostream>

#include<algorithm>

#include<string>

using namespace std;

char Adrian[3] = { 'A','B','C' };

char Bruno[4] = { 'B', 'A', 'B', 'C'};

char Goran[6] = { 'C', 'C', 'A', 'A', 'B', 'B' };

char input[102];

int n;

typedef struct Data

{

int score;

string name;

}Data;

Data person[3];

int main()

{


person[0].name = "Adrian";

person[1].name = "Bruno";

person[2].name = "Goran";

cin >> n;

for (int i = 0; i < n; i++)

cin >> input[i];

for (int i = 0; i < n; i++)

{

for (int j = 0; j < 3; j++)

{

if (i + j < n&&input[i + j] == Adrian[j])

person[0].score++;

}

i += 2;

}

for (int i = 0; i < n; i++)

{

for (int j = 0; j < 4; j++)

{

if (i + j < n&&input[i + j] == Bruno[j])

person[1].score++;

}

i += 3;

}

for (int i = 0; i < n; i++)

{

for (int j = 0; j < 6; j++)

{

if (i + j < n&&input[i + j] == Goran[j])

person[2].score++;

}

i += 5;

}

int M = (max(max(person[0].score, person[1].score), person[2].score));

cout << M << endl;

for (int i = 0; i < 3; i++)

if (M == person[i].score)

cout<<person[i].name<<endl;

}

반응형

'알고리즘문제풀이' 카테고리의 다른 글

[백준 16929] Two Dots  (0) 2019.02.14
[백준 16928]뱀과 사다리 게임  (0) 2019.02.14
[백준 14500]테트로미노  (0) 2019.02.13
[백준1987]알파벳  (0) 2019.02.13
[백준 2573]빙산  (0) 2019.02.13