728x90
반응형
정규 표현식으로 풀었던 문제 !
정규표현식을 모른다면 정규표현식이 아닌 다른 방법으로 풀어도 상관 없다!!
📑 문자열 다루기 기본
더보기
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
✏️ 문제 해결 방법
1. 문자열 길이 확인
우선 문자열 s의 길이가 4 혹은 6이어야 한다. 아닐 때 바로 false를 리턴한다.
if(s.length() != 4 && s.length() != 6) {
return fasle;
}
2. 구성 확인
문자열이 숫자로만 구성되어있는지 확인한다. String method 중 matches(String regex)를 쓰면 쉽게 해결할 수 있다. matches는 정규표현식에 들어간 식과 현재 문자가 일치하는지 확인하는 메서드이다.
1) [0-9] : 대괄호는 집합을 나타내고, 0-9는 범위를 나타낸다. 0-9까지의 숫자 중 하나와 일치한다.
2) + : 앞의 요소가 한 번 이상 반복된다는 것을 의미한다. 앞에서 길이가 4 나 6이 아닌 문자는 이미 제거하였기 때문에 문자열의 길이는 4 혹은 6일 것이다. 따라서, 숫자 [0-9] 가 반복된 4자리 혹은 6자리의 문자열인지 확인한다.
if(s.matches("[0-9]+")){
return true;
}
전체 코드
class Solution {
public boolean solution(String s) {
if (s.length() != 4 && s.length() != 6) {
return false;
}
if (s.matches("[0-9]+")){
return true;
}
return false;
}
}
🔽 정규표현식 사용하지 않은 코드
class Solution {
public boolean solution(String s) {
boolean answer = true;
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 answer;
}
}
궁금한 점이 있거나 잘못된 부분이 있다면 얼마든지 댓글로 남겨주세요 🤗
감사합니다!
728x90
반응형
'LANGUAGE > JAVA' 카테고리의 다른 글
[알고리즘] 프로그래머스 모음 사전 (레벨 2) / 자바 java 풀이 (0) | 2024.06.24 |
---|---|
[알고리즘] 프로그래머스 신규 아이디 추천 (레벨 1) / 자바 java 풀이 (0) | 2024.06.22 |
[알고리즘] 프로그래머스 3진법 뒤집기 (레벨 1) / 자바 java 풀이 (0) | 2024.06.20 |
[알고리즘] 프로그래머스 자연수 뒤집어 배열로 만들기 (레벨 1) / 자바 java 풀이 (0) | 2024.06.19 |
[알고리즘] 프로그래머스 이상한 문자 만들기 (레벨 1) / 자바 java 풀이 (0) | 2024.06.18 |