문제

https://programmers.co.kr/learn/courses/30/lessons/12918

풀이

  • 문자열의 길이가 4,6이 아니면 false를 return 하면된다.
  • 문자열안에 숫자만 포함되어 있는지 확인하기 위해서 아스키코드를 사용하면 된다.

image.png

코드

아스키 활용

#include <string>
#include <vector>

using namespace std;

bool solution(string s) {


    if(s.size() != 4 && s.size() != 6) {
       return false;
    }

    for(int i = 0; i < s.size(); i++) {
        if(!(s[i] >= 48 && s[i] <= 57)) {
            return false;
        }
    }
    return true;
}

isdigit 활용


#include <string>
#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;
}