조건 : X, 예시 : Y, 필요 없는 문장 : Z
문제
평소 헥사던전이라는 비디오 게임을 좋아하는 윤표는 특히 키를 AABBABB로 입력해 사용하는 콤보기를 좋아한다. Z
게임기에는 키가 무수히 많아, 만들어 낼 수 있는 커맨드 또한 다양하다. Z
게임에 통달한 윤표는 심심해져서 AABBABB말고도, BBCCBCC, CCDDCDD와 같이 형식은 같으나 구성 문자가 다른 커맨드를 사용해 보았고, 색다른 기술을 사용할 수 있음을 알게 되었다. Z
이에 윤표는 윤표가 좋아하는 커맨드를 정의하였다. X
- 문자열의 길이는 7이다. X
- 문자열은 정확히 2가지 종류의 문자로 이루어져 있다. X
- 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 |
댓글