비밀번호
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30440 Accepted Submission(s): 12254
Problem Description
인터넷 에는"인터넷 에 자주 떠 다 니 는데 칼 을 안 맞 을 리 가 있 나~"라 는 말 이 돌 고 있다.사실 안심 하고 인터넷 에 접속 하 는 것 도 어렵 지 않 으 니 안전 지식 을 배우 면 된다.
우선,우 리 는 안전 한 비밀 번 호 를 설정 해 야 한다.어떤 비밀번호 가 안전 한 가요?일반적으로 비교적 안전 한 비밀 번 호 는 적어도 다음 두 가지 조건 을 만족 시 켜 야 한다.
(1).암호 길이 가 8 보다 크 고 16 을 초과 하지 마 세 요.
(2).암호 에 있 는 문 자 는 다음'문자 클래스'의 네 그룹 중 적어도 세 그룹 에서 나 와 야 합 니 다.
이 네 개의 문자 분 류 는 다음 과 같 습 니 다.
1.대문자:A,B,C...Z;
2.소문 자:a,b,c...z;
3.숫자:0,1,2...9;
4.특수 기호:~,!,@,\#,$,%,^;
비밀 번 호 를 드 리 겠 습 니 다.당신 의 임 무 는 그것 이 안전 한 비밀번호 인지 아 닌 지 를 판단 하 는 것 입 니 다.
Input
입력 데이터 의 첫 줄 은 하나의 숫자 M 을 포함 하고,다음 줄 은 M 줄 이 있 으 며,줄 마다 하나의 암호(길이 가 최대 50 일 수 있 음)가 있 으 며,비밀 번 호 는 위의 네 가지 문자 만 포함 합 니 다.
Output
모든 테스트 인 스 턴 스 에 대해 이 암호 가 안전 한 암호 인지 아 닌 지 를 판단 합 니 다.그렇지 않 으 면 YES 를 출력 합 니 다.그렇지 않 으 면 NO 를 출력 합 니 다.
Sample Input
3
a1b2c3d4
Linle@ACM
^~^@^@!%
Sample Output
NO
YES
NO
/*문제 풀이:
이런 번 거 로 운 판단 문 제 는 함수 의 사상 을 활용 하여 잘 해결 된다.
*/
#include<cstdio>
#include<cstring>
int a,b,c,d,i,c1;
int isA(char c1)
{
if(c1>='A'&&c1<='Z')
{
a=1;
return 1;
}
return 0;
}
int isa(char c1)
{
if(c1>='a'&&c1<='z')
{
b=1;
return 1;
}
return 0;
}
int is0(char c1)
{
if(c1>='0'&&c1<='9')
{
c=1;
return 1;
}
return 0;
}
int isf(char c1)
{
if(c1=='~'||c1=='!'||c1=='@'||c1=='#'||c1=='$'||c1=='%'||c1=='^')
{
d=1;
return 1;
}
return 0;
}
int j1(char c1)
{
if( isA(c1)||isa(c1)||is0(c1)||isf(c1) )
return 1;
return 0;
}
int j2(char *s)
{
int t,k,len = strlen(s);
for(i=0,a=b=c=d=t=k=0; i<len; i++)
{
if(j1(s[i]))
{
t++;
}
}
k = a+b+c+d;
if(t==len&&len>=8&&len<=16&&k>=3)
return 1;
return 0;
}
int main()
{
int m;
char s[55];
scanf("%d",&m);
getchar();
while(m--)
{
gets(s);
if(j2(s))
printf("YES
");
else
printf("NO
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.