문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
코드를 간단히 만들기 위해 try~catch를 활용했다. 우선 문자열일 때 length()를 활용해 문자열의 길이가 4 혹은 6인지를 체크하기 쉽기에 if문으로 이를 확인했다. 이때, 4 혹은 6일 경우 기본값이 false인 answer를 true로 바꾸어 주었다.
그리고 try 블럭에서 Integer.parseInt()로 파싱을 시도했다. 만약 숫자로만 이루어졌다면 catch 블럭으로 진입하지 않아 return으로 갈 것이고, 아니라면 catch 블럭으로 진입해 answer를 다시 false로 바꾼 다음 반환하게 했다.
문자열이 숫자로만 이루어져 있는지 확인하기 위해 for문으로 최대 8글자를 돌기 보단 이게 훨씬 효율적이락 생각했고, 실제로 메모리 사용이 적다는 것을 확인했다.
class Solution {
public boolean solution(String s) {
boolean answer = false;
int num = 0;
if(s.length() == 4 || s.length() == 6) answer = true;
try{
num = Integer.parseInt(s);
}catch(Exception e){
answer = false;
}
return answer;
}
}
