문제 설명
문자열 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)
728x90
'연습장' 카테고리의 다른 글
연습문제 > 문자열 내 p와 y의 개수 (0) | 2021.11.30 |
---|---|
연습문제 > 문자열 내림차순으로 배치하기 (0) | 2021.11.30 |
연습문제 > 문자열 내 마음대로 정렬하기 (0) | 2021.11.30 |
연습문제 > 서울에서 김서방 찾기 (0) | 2021.11.29 |
연습문제 > 소수 찾기 (0) | 2021.11.29 |