문제의 목표는 전달받은 문자열 s가 길이가 4 또는 6을 만족하고 숫자로만 이루어져 있는지를 확인하여 만족하면 True를 아니라면 False를 반환하면 된다.
예를 들어 s가 "12345"로 주어진다면 길이가 4 또는 6이 아니므로 False를 반환하고 "0000"으로 주어진다면 길이가 4이고 숫자로만 이루어져 있으므로 True를 반환하면 된다.
설계 및 구현
구현을 위해 주어진 함수는 반환 타입이 bool이며 string타입의 매개변수 s를 가지는 함수이다. 구현을 위한 내용은 파이썬을 사용한 풀이에서 정리한 것을 그대로 사용하면 다음과 같다.
① s의 길이가 4 또는 6 인지 확인
② s가 숫자로만 이루어진 문자열인지 확인
③ 위 두가지 조건을 and 연산을 통해 둘 다 참이라면 True를 반환 아니면 False를 반환
위와 같은 형태로 구현했을 때 채점 시 2문제 정도에서 오류가 발생한다. 아직 어떤 케이스에서 오류가 나는지 알아내지 못했다.
따라서 이와같이 살짝 바꾸어주니 오류가 발생하지 않는다. 우선 파이썬과 같이 isdigit() 함수가 존재하나 C++에서는 문자열의 문자 하나씩 확인을 한다. 따라서 우선 문자열에 숫자가 아닌 수가 있다면 false를 반환하도록 한다. 그게 아니라면 반복문을 빠져나와 문자열의 길이를 확인 4 또는 6의 길이가 아니라면 false 맞다면 true를 반환하도록 한다.
위의 경우에는 테스트케이스를 통과할 수 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[C++] 서울에서 김서방 찾기(연습문제) (0) | 2020.03.29 |
---|---|
[python] 서울에서 김서방 찾기(연습문제) (0) | 2020.03.29 |
[python] 문자열 다루기 기본(연습문제) (0) | 2020.03.26 |
[C++] 문자열 내림차순으로 배치하기(연습문제) (0) | 2020.03.24 |
[python] 문자열 내림차순으로 배치하기(연습문제) (0) | 2020.03.24 |
댓글