https://programmers.co.kr/learn/courses/30/lessons/12918
문제 설명
- 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수 완성
- 예를 들어 s가 "a234"이면 False를 리턴, "1234"라면 True를 리턴
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열
먼저, 문자열이 숫자인지 판별하는 isNumer 함수를 구현한다.
isNumber()
- str 문자열을 하나씩 문자로 쪼개서 '0'~'9'밖의 범위인지 확인한다
- 숫자 범위를 벗어났을 때 flag변수를 false로 변경한다.
- 반복문을 통해 flag값이 변경되지 않았다면 true 리턴
문자열의 길이가 4 혹은 6이고 isNumber()의 결과가 true일 때 true를 반환하고 아니면 false를 반환해준다.
내 코드
class Solution {
public boolean solution(String s) {
boolean answer = true;
if(s.length()==4 || s.length()==6)
if(isNumber(s)) answer = true;
else answer = false;
else
answer = false;
return answer;
}
boolean isNumber(String str){
char temp = 0;
boolean flag = true;
for(int i=0; i<str.length(); i++) {
temp = str.charAt(i);
if (temp < '0' || temp > '9' ) {
flag = false;
break;
}
}
if(flag == true) {
return true;
}else {
return 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;
}
}
문자열의 길이가 4 또는 6일때 문자열을 int로 바꾸었을 때 성공하면 true 반환 오류가 발생하면 false 반환
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 프로그래머스 > 문자열 내 p와 y의 개수 (0) | 2022.01.30 |
---|---|
[Java] 프로그래머스 > 가운데 글자 가져오기 (0) | 2022.01.30 |
[Java] 프로그래머스 > 자연수 뒤집어 배열로 만들기 (0) | 2022.01.27 |
[Java] 프로그래머스 > 제일 작은 수 제거하기 (0) | 2022.01.27 |
[Java] 프로그래머스 > 같은 숫자는 싫어 (0) | 2022.01.27 |
댓글