출처: 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 문