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

+ Recent posts