✅ LV 1
false
반환false
반환#include <string>
#include <vector>
using namespace std;
bool solution(string s) {
bool answer = true;
if(s.size()!=4) {
if(s.size()!=6) return false;
}
for(int i=0;i<s.size();i++) {
int c=s[i];
if(c<48 || c>57) {
answer=false;
return answer;
}
}
return answer;
}
4
가 아닌 문자열 중에 길이가 6
도 아닌 문자열은 false
반환if(s.size()!=4 || s.size()!=6)
형태로 판별할 경우, 문자열 길이가 4
인데도 false
로 판별해버리는 오류가 있어서 대안으로 이중 if
문을 사용했는데 비효율적이라서 개선 필요char
형으로 받아서 ASCII
코드로 변환해 0~9의 ASCII
코드값인 48~57 사이의 값인지 확인해 숫자인지 판별char
형의 문자를 ASCII
코드로 변환하기 위해 숫자형 변수에 한번 더 문자를 할당하는 과정이 메모리 낭비일 수 있음#include <string>
#include <isdigit>
#include <vector>
using namespace std;
bool solution(string s) {
bool answer = true;
for (int i = 0; i < s.size(); i++)
{
if (!isdigit(s[i]))
answer = false;
}
return s.size() == 4 || s.size() == 6 ? answer : false;
}
ASCII
코드로 판별하는 방법 대신 isdigit
라이브러리의 isdigit
함수를 사용해 문자열의 각 문자를 문자인지, 숫자인지 판별