1. 문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- 제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
2. 풀이 코드
#include <string>
#include <vector>
using namespace std;
bool solution(string s) {
bool answer = true;
if (s.size() != 4 && s.size() != 6)
return false;
for (int i = 0; i < s.size(); ++i) {
if ('0' > s[i] || '9' < s[i])
return false;
}
return answer;
}
3. 정리
먼저 빠르게 판단할 수 있는 조건인 4 혹은 6이 아니면 false를 바로 리턴하고 해당 조건에 걸리지 않으면 문자열중에 0~9문자가 있는지를 검사한다.
전체 시간 복잡도는 최대 문자열의 길이가 8이기 때문에 상수시간 O(1) 이다.
출처 :https://school.programmers.co.kr/learn/courses/30/lessons/12918
'Algorithm' 카테고리의 다른 글
| [프로그래머스] 직사각형 별찍기 (0) | 2025.03.10 |
|---|---|
| [프로그래머스] 행렬의 덧셈 (0) | 2025.03.10 |
| [프로그래머스] 부족한 금액 계산하기 (0) | 2025.03.10 |
| [프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2025.03.10 |
| [정렬] 병합 정렬 (0) | 2025.03.10 |