Algorithm

[알고리즘] 문자열 다루기 기본 - 문자열의 길이와 구성 검증하기

montmer27 2026. 2. 2. 09:45

문제 요구사항

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

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

풀이

class Solution {
    public boolean solution(String s) {
        boolean answer = false;
        //길이가 4 또는 6인지
        if(s.length()==4 || s.length()==6){
            //모든 자리가 숫자인지
            for(int i = 0;i< s.length();i++){
                char each = s.charAt(i);
                //ascii 코드값 0부터 9까지 : 48부터 57 사이
                if(each < 48 || each > 57) return false;
            }
            answer = true;
        }
        return answer;
    }
}

실패 요인

boolean answer의 실행 흐름에 따른 변화를 제대로 추적하지 않은 결과, 참/거짓이 필요할 때 return되지 않음.

모범답안

class Solution {
  public boolean solution(String s) {
      if(s.length() == 4 || s.length() == 6){
          try{
              int x = Integer.parseInt(s);
              return true;
          } catch(NumberFormatException e){
              return false;
          }
      }
      else return false;
  }
}
import java.util.*;

class Solution {
  public boolean solution(String s) {
        if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)");
        return false;
  }
}
class Solution {
  public boolean solution(String s) {
    return (s.length() != 4 && s.length() != 6) || (s.split("[0-9]").length > 0) ? false:true;
  }
}

잘한 점

ascii 코드로 숫자 검증 조건을 찾은 것

인사이트

문자열의 길이는 .length()로 구하고, 배열의 길이는 괄호가 없는 .length로 구한다.
ascii 코드값 - 대소문자, 숫자는 익히는 것이 좋다
다양한 조건을 적용한 후 boolean을 반환할 때는 흐름을 잘 보자.

Github 링크

https://github.com/ginsengcandy/Coding-Test-Practice/commit/bccf2ae0b5d6b788886266b97486b83e8e6ddbce

 

[level 1] Title: 문자열 다루기 기본, Time: 0.04 ms, Memory: 70.2 MB -BaekjoonHub · ginsengcandy/Coding-Test-Practice@bc

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

github.com

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr