큐브러버가 리듬 테트리스에서 비밀번호를 만들 때 규칙을 지킨 비밀번호를 만들기 위해 현재 비밀번호에서 몇자리를 더 수정 해야 하는지 구하는 문제
설명은 길지만 내용은 간단한 문제
비밀번호의 조건을 크게 길이가 6글자를 만족 하는지, 숫자 ~ 특수문자 까지의 조건을 몇가지 만족하는지 로나누어서 구한다.
둘 중 더 큰 값을 표시하는게 정답이 된다.
#include <iostream>
using namespace std;
const short MAX = 100;
const short WORDS_MAX = 12;
bool isSpecial(char c)
{
char words[WORDS_MAX] = { '!', '@','#','$','%','^','&','*','(',')', '-', '+' };
for (int i = 0; i < WORDS_MAX; i++)
if (c == words[i])
return true;
return false;
}
int main()
{
bool trigger[4] = {};
char input[MAX] = {};
int len, need, needTrigCount = 0;
cin >> len >> input;
need = 6 - len;
for (int i = 0; i < len; i++)
{
if ('0' <= input[i] && input[i] <= '9')
trigger[0] = true;
else if ('a' <= input[i] && input[i] <= 'z')
trigger[1] = true;
else if ('A' <= input[i] && input[i] <= 'Z')
trigger[2] = true;
else if (isSpecial(input[i]))
trigger[3] = true;
}
for (int i = 0; i < 4; i++)
if (!trigger[i])
needTrigCount++;
cout << (need < needTrigCount ? needTrigCount : need);
return 0;
}
2019-03-08 02:37:25에 Tistory에서 작성되었습니다.