Lv.1 문자열 다루기 기본

서현우·2022년 4월 27일
1

알고리즘 풀이

목록 보기
18/31

문제 설명

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

초기코드

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

내 풀이

//문자열 길이가 4 또는 6일 때 문자가 숫자면 ++cnt
//cnt가 4 또는 6이면 true 아니면 false

class Solution {
    public boolean solution(String s) {
        boolean answer = false;
        int cnt=0;
        char[] chArr=s.toCharArray();
        if(s.length()==4) {
        	for(int i=0;i<chArr.length;i++) {
        		if('0'<=chArr[i] && chArr[i]<='9') ++cnt;
        	}        	
        	if(cnt==4) return true;
        	else return false;
        }
        else if(s.length()==6) {
        	for(int i=0;i<chArr.length;i++) {
        		if('0'<=chArr[i] && chArr[i]<='9') ++cnt;
        	}        	
        	if(cnt==6) return true;
        	else return false;
        }
        else return false;       
    }
}

다른풀이1

//if (length != 4 && length != 6)
//if (c < '0' || c > '9') 두 부분 체크

class Solution {
  public boolean solution(String s) {
     int length = s.length();
        if (length != 4 && length != 6)
            return false;
        for (int i = 0; i < length; ++i) {
            char c = s.charAt(i);
            if (c < '0' || c > '9')
                return false;

        }
        return true;
  }
}

다른풀이2

//예외처리로 try문 안에 에러가 없으면 true 아니면 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;
  }
}
profile
안녕하세요!!

0개의 댓글