[프로그래머스] 문자열 다루기 기본

최지나·2023년 10월 15일
1

코딩테스트

목록 보기
37/154

문제

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

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

입출력 예

sreturn
"a234"false
"1234"true

문제 출처

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

생각

  • 0~9 사이의 값인지 확인하는 방법?
    • 문자열을 문자열의 길이만큼 돌면서 s.charAt(idx) - '0'의 값이 0~9 사이인지 확인하자

코드

class Solution {
    public boolean solution(String s) {
        
        boolean answer = false;
    
        if (s.length() == 4 || s.length() == 6){
            boolean allNum = true;
            for (int i = 0; i < s.length(); i++){
                if(s.charAt(i) - '0' < 0 || s.charAt(i) - '0' >  9 ) {
                    allNum = false;
                }
            }
            if (allNum) answer = true;
        }
        
        return answer;
    }
}

다른 사람의 풀이

class Solution {
    public boolean solution(String s) {
        return s.matches("[0-9]{4}|[0-9]{6}");
    }
}
  • 정규식으로 푼 풀이를 보면 가장 허무해질 때가 많은 것 같다,,,😥
  • 연습하면 생각보다 복잡하지 않으니 다른 사람들의 풀이를 보고서라도 조금씩 따라해봐야겠다
profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글