◇ 문제 설명
X사이트에서는 회원가입을 할 때 다음의 규칙을 지켜 비밀번호를 생성해야 합니다
1. 한개 이상의 알파벳 대문자를 포함해야 합니다.
2. 두개 이상의 알파벳 소문자를 포함해야 합니다.
3. 두개 이상의 숫자를 포함해야 합니다.
생성하고자 하는 비밀번호 password가 매개변수로 주어질때, 생성가능한 비밀번호면 true를 그렇지 않으면 false를 return하도록 solution함수를 작성하려 합니다.
빈칸을 채워 전체 코드를 완성해주세요.
◇ 매개변수 설명
생성하고자 하는 비밀번호 password가 solution함수의 매개변수로 주어집니다.
▶ password는 알파벳 대문자, 소문자, 숫자로만 이루어진 문자열 입니다.
▶ password의 길이는 5이상 15이하입니다.
◇ return값 설명
생성가능한 비밀번호면 true를 그렇지 않으면 false를 return합니다.
◇ 예시
| password | return | |
| 예시 #1 | "helloworld" | false |
| 예시 #2 | "Hello123" | true |
◇ 예시 설명
예시 #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");
}
◇ 답안 힌트
▶ 주의) 숫자 0~9와 문자 '0'~'9'는 다릅니다!!!
▶ 대문자, 소문자, 숫자의 개수가 적어도 몇개가 필요한지 검사하는 부분이 필요합니다.
◇ 답안 풀이
(※ 실행 흐름 순으로 해석됩니다.)
bool solution(char* password) {
bool answer;
//값 초기화
int capital_count = 0, small_count = 0, digit_count = 0;
//0부터 password의 길이 까지 for문 반복
for(int i = 0; i < strlen(password); i++) {
//대문자 입력시 count 1증가
if(password[i] >= 'A' && password[i] <= 'Z')
capital_count++;
//소문자 입력시 count 1증가
else if(password[i] >= 'a' && password[i] <= 'z')
small_count++;
//숫자 입력시 count 1증가
//0과 '0'은 다릅니다. 0은 정수형이며, char로 입력받은 '0'은 아스키코드로 48번을 말합니다.
else if(password[i] >= '0' && password[i] <= '9')
digit_count++;
}
//대문자가 적어도 1개이상, 소문자가 2개이상, 숫자가 2개이상이어야 비밀번호 생성이 가능합니다.
if(capital_count>=1&&small_count>=2&&digit_count>=2)
answer = true;
else
answer = false;
return answer;
}
◇ 실행결과

◇ 출처
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io
'Cospro 2급 > C언어' 카테고리의 다른 글
| [6차] 문제8. 주어진 수와 뒤집은 수의 차 구하기 답안 및 풀이 (0) | 2021.05.30 |
|---|---|
| [6차] 문제7. 의자와 책상을 사고싶어요. 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제5. 음료수 마시기. (빈병으로 음료수를 사세요!) 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제4. 카드뽑기 게임! (도박은 안되요!) 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제3. 단체 유니폼 맞추기 답안 및 풀이 (0) | 2021.05.30 |
댓글