알고리즘 & 자료구조/코딩테스트

[프로그래머스] 문자열 다루기 기본 (C++)

인디아나쥰이 2021. 2. 5. 21:10

문제 설명

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

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예

s                                                                                                     return

a234 false
1234 true

 

더보기

본인 같은 경우는 문자열의 길이를 먼저 확인해주고,

아스키 코드를 이용해서 범위를 정해주어 확인해줬다.

 

 

#include <iostream>
#include <string>
#include <vector>

using namespace std;

bool solution(string s) {
    bool answer = true;
    
    if(s.length() != 4 && s.length() != 6)
    {
        answer = false;
        return answer;
    }
    else
    {
       for(int i = 0; i < s.length(); i++)
       {
           if((int)s[i] < 48 || (int)s[i] > 57)
           {
               answer = false;
               break;
           }
       }
       
    }
    
    return answer;
}


int main(void)
{
    
}

 

 

다른 사람의 코드중 유용해 보이는 코드

 

더보기

헤더파일

C++ : <cctype>

 

Syntax

 

int isdigit(int c);

(int c) 는 판별할 문자

 

매개변수로 들어온 값이 10진수 숫자로 변경 가능하면 0이 아닌 숫자(true), 아니면 0(false)를 반환하는 함수라고 한다.

 

#include <string>
#include <vector>
#include <locale> 
#include <iostream>

using namespace std;

bool solution(string s) {    
    if(s.size() != 4 && s.size() != 6 ){
        return false;
    }
    
    for( int i=0; i < s.size(); i++){
        if (isdigit(s[i]) == false)
            return false;
    }
    
    return true;
}

 

728x90
반응형