비밀번호는 만드는 것보다 검사하는게 더 힘들죠.
문제 설명
X사이트에서는 회원가입을 할 때 다음의 규칙을 지켜 비밀번호를 생성해야한다.
1. 한 개 이상의 알파벳 대문자를 포함해야 한다.
2. 두 개 이상의 알파벳 소문자를 포함해야 한다.
3. 두 개 이상의 숫자를 포함해야 한다.
생성하고자 하는 비밀번호 password가 매개변수로 주어질 때, 생성 가능한 비밀번호면 true를 그렇지 않으면 false를 return 하는 solution 함수를 완성한다.
매개변수 설명
생성하고자 하는 비밀번호 password가 solution 함수의 매개변수로 주어진다.
password는 알파벳 대문자, 소문자, 숫자로만 이루어진 문자열이다.
password의 길이는 5 이상 15 이하이다.
return 값 설명
생성 가능한 비밀번호면 true를 그렇지 않으면 return 한다.
예시
예시 설명
예시 1)
알파벳 대문자와 숫자를 포함하지 않았다.
예시 2)
알파벳 대문자 1개, 알파벳 소문자 4개, 숫자 3개를 포함했으므로 생성할 수 있다.
코드 설명
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
bool solution(char* password) {
bool answer;
int capital_count = 0, small_count = 0, digit_count = 0;
for(int i = 0; i < strlen(password); i++) {
if(password[i] >= 'A' && password[i] <= 'Z') //대문자면 카운트
capital_count++;
else if(password[i] >= 'a' && password[i] <= 'z') //소문자면 카운트
small_count++;
else if(password[i] >= '0'&& password[i] <= '9') //숫자면 카운트
digit_count++;
}
if(capital_count>=1 && small_count>=2 && digit_count>=2) //개수에 따라 확인
answer = true;
else
answer = false;
return answer;
}
int main() {
char* password1 = "helloworld";
bool ret1 = solution(password1);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret1 ? "true" : "false");
char* password2 = "Hello123";
bool ret2 = solution(password2);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret2 ? "true" : "false");
}
password에 숫자가 2개 이상 포함되어야 한다. 숫자는 '0' ~ '9' 까지이다. password는 char형으로 받았기 때문에 0 ~ 9가 아니다.
알파벳 대문자는 1개 이상, 알파벳 소문자는 2개 이상, 숫자는 2개 이상이기 때문에 카운트한 변수들이 갯수에 맞게 카운트 되었는지 확인하면 된다.
'cospro2급 > cospro_6차' 카테고리의 다른 글
2021-05-31 / 4번 문제 (0) | 2021.05.31 |
---|---|
2021-05-31 / 9번 문제 (0) | 2021.05.31 |
2021-05-30 / 7번 문제 (0) | 2021.05.30 |
2021-05-30 / 5번 문제 (0) | 2021.05.30 |
2021-05-30 / 10번 문제 (0) | 2021.05.30 |