본문 바로가기

코딩 테스트

[프로그래머스] (Lv.1) 문자열 다루기 기본

728x90

문제


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

 

 

-  출력 예시  -

정답 코드


<  내 정답 코드  >

class Solution {
    public boolean solution(String s) {
        if (s.length() != 4 && s.length() != 6) {
            return false;
        }
        
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if ('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' ) {
                return false;
            }
        }
        
        return true;
    }
}

 

<  타인 답변 코드  >

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

이것을 주의하자!


-  String 문자열을 charAt( ) 메서드로 하나씩 뜯어 보면서 아스키 코드를 활용해 알파벳이 포함되어 있는지 확인하면 어려운 코드는 아니다.

 

-  타인 답변 코드를 보면 '예외 처리'를 통해 확인하는 방법도 있다. 즉 String 을 int 형으로 바꿀 때 NumberFormatException 이 발생하는지 확인하면서 결과를 도출하는 것이다.