- 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- 제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
#include <string>
#include <vector>
using namespace std;
bool solution(string s) {
bool answer = true;
if(s.length() != 4 && s.length() != 6)
{
return false;
}
for(char c : s)
{
if(!isdigit(c))
{
return false;
}
}
return answer;
}
1) 문자열 s의 길이가 4 혹은 6 구하기
-> s.length()로 문자열의 길이(문자 수)를 구하기
2) 숫자로만 구성되어 있는지 확인
-> 범위기반 for문을 통해 문자열의 문자를 하나씩 순회 후 isdigit(c)를 통해 숫자인지 판단
if(c < '0' || c > '9' ) 를 통해 직접 비교도 가능(더 빠르긴 하지만 가독성은 떨어짐)
- isdigit(c) : 숫자인지
- isalpha(c) : 알파벳인지
- isalnum(c) : 알파벳 또는 숫자인지
- isupper(c) : 대문자인지
- islower(c) : 소문자인지
- isspace(c) : 공백인지