*내가 작성한 코드
더보기
#include <string>
#include <vector>
using namespace std;
bool ConditionCheck(string s)
{
int sLen = s.size();
// 글자수 체크
if(!(sLen == 4 || sLen == 6)) return false;
// 숫자로만 구성인지 체크
for(int i = 0; i < sLen; ++i)
{
if(!('0' <= s[i] && s[i] <= '9')) return false;
}
return true;
}
bool solution(string s) {
bool answer = ConditionCheck(s);
return answer;
}
다른 사람들의 풀이를 살펴보던 중 std::isdigit 함수를 사용해서 더 간결하고 가독성 있는 코드를 발견하고 이에 대해 조사하였다.
std::isdigit
- <cctype> 헤더에 정의되어있다.
- 간단하게 주어진 문자가 숫자인지 확인하는데 사용된다.
- 숫자 여부를 확인하는데 있어 코드가 직관적이다.
- 문자 입력만 유효하며, 숫자로 변환 가능한 값인지 확인할 때 적합하다.
- 문자열을 검사하려면 반복문을 사용해서 추가적으로 처리가 필요하다.
#include <string>
#include <vector>
#include <cctype>
using namespace std;
bool ConditionCheck(string s)
{
int sLen = s.size();
// 숫자로만 구성인지 체크
for(int i = 0; i < sLen; ++i)
{
if(!(isdigit(s[i]))) return false;
}
// 글자수 체크
return (sLen == 4 || sLen == 6) ? true : false;
}
bool solution(string s) {
bool answer = ConditionCheck(s);
return answer;
}