[오늘의 문제] 문자열 다루기 기본

shlim55·2025년 7월 4일

코딩테스트

목록 보기
95/223

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

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

제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
s return
"a234" false
"1234" true
문제가 잘 안풀린다면😢
힌트가 필요한가요? [코딩테스트 연습 힌트 모음집]으로 오세요! → 클릭

공지 - 2022년 7월 22일 테스트케이스가 추가되었습니다.
공지 - 2022년 7월 22일 제한 사항이 추가되었습니다.

내가 작성한 코드문

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        // 문자열 s의 길이가 4 혹은 6
        // s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴

        for(int i = 0; i < s.length(); i++){// 알파벳 탐지 해서 있으면 false
            char c = s.charAt(i);
            
            if(!(s.length() == 4 || s.length() == 6)){
                answer = false;
            }
            if(!(c >= '0' && c <= '9')){
                answer = false;
            } 
            
        }
  
        return answer;
    }
}

맨 처음에 4글자 혹은 6글자 아닐시 false 조건문을 빼서

통과가 안되었다.

다른 사람의 풀이

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;
  }
}

Integer.parseInt(s); 정수 변환 되는지 여부와

안될시 false를 반환하는 try catch 문

profile
A Normal Programmer

0개의 댓글