CodeKata/Programmers

[CK] 연습문제 > 문자열 다루기 기본

anothel 2021. 11. 30.

문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 사항
  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s return
"a234" false
"1234" true

 

Solution

#include <string>
#include <vector>

using namespace std;

bool solution(string s) {
  if (s.length() != 4 && s.length() != 6) return false;
  for (auto x : s)
    if (x < '0' || '9' < x) return false;
  return true;
}

 

남의 코드

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

 

후기

아 string의 각 char를 뽑아와서 번호를 가지고 테스트하지 않아도 isdigit이라는 stl을 사용해서 숫자인지를 판별할 수 있다는 점에서 새로운 사실을 깨닫게 되었다.

 

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

 

댓글