728x90
문자열 다루기 기본
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s 는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
기본코드
class Solution {
public boolean solution(String s) {
boolean answer = true;
return answer;
}
}
문제풀이
첫 번째 조건, 문자열 s의 길이가 4나 6이 아닐 경우 boolean answer = false로 return하는 것은 간단하게 구현하였다.
문제는 다음이었다. 문자인지 숫자인지 확인하는 방법을 알지 못하였다.
일단은 문자일경우 0보다 크거나 같지 않으면 되지 않을까?해서 다음과 같이 코드를 작성하였으나
당연히 실패
class Solution {
public boolean solution(String s) {
boolean answer = true;
answer = (s.length() != 4 && s.length() != 6) ? false : true;
int a = 0;
for(int i = 0; i<s.length(); i++){
if(s.charAt(i) >= 0 ){
a = 0;
}else{
a++;
}
}
System.out.println(a);
if(a > 0){
answer = false;
}
return answer;
}
}
내 생각과 정 반대였다.
문자 또한 디지털화 시키면 숫자로 변환되는 법,
문자인지 확인하기 위해서는 for문을 돌며 내부에 조건문으로 해당 값이 0보다 작거나 || 9보다 큰지 확인하면 되었다.
더보기
for(int i = 0 ; i < s.length(); i++){
//charAt()으로 떼어내면 char 타입으로 읽히기에 ' '(작은따옴표)로!
if(s.charAt(i) < '0' || s.charAt(i) > '9'){
return false;
}
}
이 부분만 알고 있다면 쉽게 해결 가능했을 문제였다.
Solution.java
class Solution {
public boolean solution(String s) {
if(s.length() != 4 && s.length() != 6) return false;
for(int i = 0 ; i < s.length(); i++){
if(s.charAt(i) < '0' || s.charAt(i) > '9'){
return false;
}
}
return true;
}
}
728x90
'🤖Algorithm' 카테고리의 다른 글
[백준] 10171 고양이 Java (0) | 2022.07.25 |
---|---|
[프로그래머스] 서울에서 김서방 찾기 Java (0) | 2022.07.21 |
[프로그래머스] 문자열 내 p와 y의 개수 Java (0) | 2022.07.21 |
[프로그래머스] 자릿수 더하기 Java (0) | 2022.07.19 |
[프로그래머스] 완주하지 못한 선수 Java (0) | 2022.07.19 |