1. 문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있다면 True를 리턴하고 아니라면 False를 리턴하는 함수를 만드시오. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
2. 제한
s는 길이 1 이상, 8 이하인 문자열입니다.
3. 정답
class Solution {
public boolean solution(String s) {
char [] temp = s.toCharArray();
if (temp.length == 4 || temp.length == 6) {
for (int i = 0; i < temp.length; i++) {
if (temp[i] < '0' || temp[i] > '9') {
return false;
}
}
return true;
}
else {
return false;
}
}
}
4. 설명
4-1. String s의 요소 하나하나에 접근하기 쉽게 toCharArray()함수를 활용하여 s를 char[] 배열로 바꿔준다.
4-2. 만약 배열의 길이가 4 또는 6이면서 for문을 활용해 숫자가 아닌 문자가 하나라도 존재한다면 false를 return하고 끝낸다.
4-3. 반면에 배열의 길이가 4 또는 6이면서 요소들이 전부다 숫자라면 true를 return한다.
4-4. 처음부터 배열의 길이가 4또는 6이 아니라면 false를 return한다.
5. 참고
5-1. 배열의 길이가 4 또는 6인지부터 먼저 판별하여 아니라면 바로 false를 return하는 것이 요소들 하나하나를 검사하기 위해 for문부터 돌리는 것보다 효율적인 코드라고 생각했다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
수박수박수박수박수박수?(JAVA) (0) | 2022.01.18 |
---|---|
서울에서 김서방 찾기(JAVA) (0) | 2022.01.17 |
문자열 내 p와 y의 개수(JAVA) (0) | 2022.01.17 |
나누어 떨어지는 숫자 배열(JAVA) (0) | 2022.01.17 |
2016년(JAVA) (0) | 2022.01.17 |