본문 바로가기
Algorithm/C++

[백준 17838] 커맨드

by imagineer_jinny 2023. 8. 19.

17838번: 커맨드 (acmicpc.net)

 

17838번: 커맨드

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

www.acmicpc.net

 

조건 :  X,  예시 : Y,   필요 없는 문장 : Z

 

문제

 

평소 헥사던전이라는 비디오 게임을 좋아하는 윤표는 특히 키를 AABBABB로 입력해 사용하는 콤보기를 좋아한다.  Z

게임기에는 키가 무수히 많아, 만들어 낼 수 있는 커맨드 또한 다양하다. Z

게임에 통달한 윤표는 심심해져서 AABBABB말고도, BBCCBCC, CCDDCDD와 같이 형식은 같으나 구성 문자가 다른 커맨드를 사용해 보았고, 색다른 기술을 사용할 수 있음을 알게 되었다. Z

이에 윤표는 윤표가 좋아하는 커맨드를 정의하였다. X

  1. 문자열의 길이는 7이다. X
  2. 문자열은 정확히 2가지 종류의 문자로 이루어져 있다. X
  3. AABBABB 형식을 만족한다. X

이에 신이 난 윤표는 커맨드를 생성하는 매크로를 만들었으나, 코딩 실력이 부족하여 윤표가 좋아하는 커맨드만 생성하도록 만들 수는 없었다. Z 이를 답답하게 지켜본 서윤이는 어떤 커맨드가 윤표가 좋아하는 커맨드인지를 확인하는 프로그램을 만드려 한다. X

 

입력

첫 줄에 테스트 케이스의 개수 T가 주어진다. (1 ≤ T ≤ 100)

이후 T개의 줄에 길이 N이고 알파벳 대문자로만 이루어진 문자열이 입력된다. N은 10,000보다 작거나 같은 자연수이다.

 

출력

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

 

 

생각 과정

어떤 스트링을 입력받았을 때 조건 1,2,3을 체크한 뒤 맞으면 1, 틀리면 0을 출력하게 한다.

 

* 이 다음에 문법을 어떻게 구현할지 구체적으로 생각하느라 진도가 안 나가지는 것 같음

 

- 문자열 2가지 종류 문자인 것을 어떻게 판별할것인가?

- AABBABB형식은 어떻게 표현할 것인가?

 

 

사고 과정 / 틀림

#include<iostream>

using namespace std;

int main()
{
    int t;
    cin>>t;
    
   
    while(t--)
    {
        string s;
        cin>>s;
    
        bool isTrue=false;
        int alpha[26]={0,};
        
        for(int i=0;i<s.size();i++)
        {
           alpha[s[i]-'65']++;
        }
        
        int check=0;
        
        for(int i=0;i<26;i++)
        {
            if(alpha[i]>=1)
            {
                check++;
            }
        }
    
        if(s.size()==7)
        {
            isTrue=true;
            
        }else if(check==2)
        {
            isTrue=true;
        }else if((s[0]==s[1])&&(s[1]==s[4])&&(s[2]==s[3])&&(s[3]==s[5])&&(s[5]==s[6]))
        {
            isTrue=true;
        }
    
    
        if(isTrue)
        {
            cout<<1;
        }else
        {
            cout<<0;
        }
    }
    
    
    return 0;
}

'Algorithm > C++' 카테고리의 다른 글

[백준 10988] 팰린드롬인지 확인하기  (0) 2023.08.20
[백준 1110] 더하기 사이클  (0) 2023.08.20
[백준 7568] 덩치  (0) 2023.08.19
[백준 2231] 분해합  (0) 2023.08.19
[백준 4344] 평균은 넘겠지  (0) 2023.08.19

댓글