본문 바로가기

공부/알고리즘

[Java] 코딩테스트 연습_4

문제 설명

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

 

제한 사항

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

입출력 예

s return
a234 false
1234 true

 

 

출처


 

코딩테스트 연습하다가

모르는 걸 알게 되었음

 

String을 전달 받아서는, 숫자로만 구성되어있는지 확인 하려면

 

for문으로 글자 하나하나 charAt()으로 받아서

1. 한글자글자마다 if문으로써 0~9사이 숫자인지 확인 한 뒤

하나라도 아닌 경우에 false & break;를 해주면 됨

2. Character 클래스의 isDigit(char) 메소드 사용

static boolean isDigit(char ch)

Determines if the specified character is a digit.

출처: https://docs.oracle.com/javase/8/docs/api/

해당 char가 숫자일 경우 true, 아닐 경우 false 반환

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++){
            if( !Character.isDigit(s.charAt(i)) ){
                answer = false;
                break;
            }
        }
      } else answer = false;
      
      return answer;
  }
}

 

 

다른 사람 풀이 보니까 여러 방법이 많이 보였음.

그 중에서도 제일 좋아보이는 방법들은....

- 정규식을 사용하는 방법

- 익셉션을 사용하는 방법

정도?

다들 똑똑하다,,, 분발해야지 ㅠㅠㅠ

 

반응형