본문 바로가기

알고리즘

[백준 17838] 커맨드

www.acmicpc.net/problem/17838

 

17838번: 커맨드

T개 각각의 테스트 케이스에 대해 윤표가 좋아하는 커맨드이면 1, 그렇지 않으면 0을 한 줄에 하나씩 출력한다.

www.acmicpc.net

 

이문제는

3가지 조건을 만족하는 문자열인지를 판단하는 문제로

상대적으로 난이도가 그렇게 어렵지 않았던 문제이다.

 

조건

1. 길이가 7

2. 문자 종류가 2가지 

3. 커맨드 순서가 AABBABB

 

처음에는 2번조건이 testcase3 처럼 문자열이 2종류 이상만 고려했다가

모두가 다 같은 경우를 고려하지 못하고 틀렸었다. 

그래서 문자열을 비교하는 조건중에서 맨 마지막인 조건

0번 index와  6번 index 문자열이 달라야하는 조건을 통해 

2번조건을 지킬 수 있었다.

 

#include<iostream>

using namespace std;

int CorrectCommand(string strTmp)
{
    if(strTmp.length() != 7)
        return 0;

    if( strTmp[0] == strTmp[1] &&
        strTmp[0] == strTmp[4] &&
        strTmp[6] == strTmp[2] &&
        strTmp[6] == strTmp[3] &&
        strTmp[6] == strTmp[5] &&
        strTmp[0] != strTmp[6])  
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main (void)
{
    int nT = 0;

    cin >> nT;
    for(int t = 0; t < nT; t++)
    {
        string strTmp;
        cin >> strTmp;
        cout << CorrectCommand(strTmp) << endl;
    }

    return 0;
}

'알고리즘' 카테고리의 다른 글

[백준 1911] 흙길 보수하기  (0) 2020.10.14
[백준 17938] 퐁당퐁당2  (0) 2020.10.03
[백준 2578] 빙고  (0) 2020.09.27
[백준 11048] 이동하기  (0) 2020.09.21
[백준 15903] 카드 합체 놀이  (0) 2020.09.21