본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 14654번 : 스테판 쿼리

반응형

www.acmicpc.net/problem/14654

 

14654번: 스테판 쿼리

첫째 줄에 라운드의 수 N이 주어진다. (1 <= N <= 300) 둘째 줄에 『남자는 불꽃 주먹 에이스』 팀의 i번째 라운드 가위바위보 정보가, 셋째 줄에 『뉴욕동 보자기 다니엘삿갓』 팀의 i번째 라운드 가

www.acmicpc.net

간단한 구현문제였습니다.

 

풀이방법

 1. 가위바위보에서 이긴 팀을 확인한 후에 이긴 횟수를 1증가시킵니다.

 2. 비교를 마친 후 가장 큰 값을 ans변수에 저장합니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int n, ans, cntA,cntB;
int teamA[301];
int teamB[301];
int main(){
    cin >> n;
    for(int i = 0; i < n; i++) cin >> teamA[i];
    for(int i = 0; i < n; i++) cin >> teamB[i];

    for(int i = 0; i < n; i++){
        if(teamA[i] == 1 && teamB[i] == 2) cntA = 0, cntB++;
        else if(teamA[i] == 2 && teamB[i] == 3) cntA = 0, cntB++;
        else if(teamA[i] == 3 && teamB[i] == 1) cntA = 0, cntB++;
        else if(teamB[i] == 1 && teamA[i] == 2) cntA++, cntB = 0;
        else if(teamB[i] == 2 && teamA[i] == 3) cntA++, cntB = 0;
        else if(teamB[i] == 3 && teamA[i] == 1) cntA++, cntB = 0;
        else if(teamB[i] == teamA[i]){
            if(cntA) cntA = 0, cntB++;
            else cntB = 0, cntA++;
        }
        ans = max({ans, cntA, cntB});
    }
    cout << ans <<'\n';
}