hayu's 개발 일지

[TIL]240309 문자열 다루기 기본 본문

코딩 문제/프로그래머스_java

[TIL]240309 문자열 다루기 기본

hayu00 2024. 3. 9. 21:13

문제 설명

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

제한 조건

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

입출력 예

s return
"a234" false
"1234" true

 

 

출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


내 풀이

class Solution {
    public boolean solution(String s) {
        boolean answer = true;

        if (s.length() == 4 || s.length() == 6) {
            for (int i = 0; i < s.length(); i++) {
                char a = s.charAt(i);
                if (a < '0' || a > '9') {
                    return false;
                }
            }
        } else {
            answer = false;
        }

        return answer;
    }
}

 

풀이 설명

- 먼저 문자열의 길이가 4 혹은 6인지 if 문의 조건을 걸었다. 그리고 char 로 나누어, 아스키코드로 확인하게 만들었다. 아스키 코드 상에서 숫자의 범위를 벗어나면 false 가 범위 내에 있다면 true 를 반환하게 만들었다. 

 

회고

-  char 를 사용하여 아스키 코드로 문제를 풀어본 경험이 부족해서 생각보다 어려운 문제였다. 문제를 어떤식으로 접근해야하는지 다양하게 생각해봐야겠다.