본문 바로가기

cospro2급/cospro_6차

2021-05-30 / 6번 문제

비밀번호는 만드는 것보다 검사하는게 더 힘들죠.

 

문제 설명

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개 이상이기 때문에 카운트한 변수들이 갯수에 맞게 카운트 되었는지 확인하면 된다.

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'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