📘문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12918?language=java
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 제한조건
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
💡 개념 설명
- 길이 확인: 먼저 입력 문자열 s의 길이가 4이거나 6인지 확인합니다. 이 조건을 만족하지 않으면 무조건 false를 반환합니다.
- 숫자 여부 확인: 길이가 조건을 만족하면, 문자열의 모든 문자가 숫자인지 확인합니다.
- 문자열을 순회하면서 각 문자가 '0'부터 '9' 사이에 해당하는지 검사합니다.
- 숫자가 아닌 문자가 하나라도 발견되면 false를 반환하고 즉시 검사를 종료합니다.
- 결과 반환: 위의 두 조건을 모두 통과하면 true를 반환합니다.
📎 입출력 예시

📎 코드
public class Solution {
public boolean solution(String s) {
// 1. 길이 확인
if (s.length() != 4 && s.length() != 6) {
return false;
}
// 2. 문자열을 순회하며 모든 문자가 숫자인지 확인
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
// Character.isDigit() 메서드를 사용하면 코드가 더 간결해집니다.
if (!Character.isDigit(c)) {
return false;
}
// 또는 ASCII 값 비교: if (c < '0' || c > '9') { return false; }
}
// 3. 모든 조건을 통과하면 true 반환
return true;
}
public static void main(String[] args) {
Solution sol = new Solution();
// 테스트 케이스
String s1 = "a234";
String s2 = "1234";
String s3 = "123456";
String s4 = "123e";
String s5 = "12345"; // 길이 5 (false)
System.out.println("s = \"" + s1 + "\", 결과: " + sol.solution(s1)); // 예상 출력: false
System.out.println("s = \"" + s2 + "\", 결과: " + sol.solution(s2)); // 예상 출력: true
System.out.println("s = \"" + s3 + "\", 결과: " + sol.solution(s3)); // 예상 출력: true
System.out.println("s = \"" + s4 + "\", 결과: " + sol.solution(s4)); // 예상 출력: false
System.out.println("s = \"" + s5 + "\", 결과: " + sol.solution(s5)); // 예상 출력: false
}
}
📎 결과

'Java' 카테고리의 다른 글
| [Java] 코딩 28 - 프로그래머스 기출 문제(JAVA) / 직사각형 별찍기 / Day 25 (0) | 2025.11.22 |
|---|---|
| [Java] 코딩 27 - 프로그래머스 기출 문제(JAVA) / 행렬의 덧셈 / Day 24 (0) | 2025.11.18 |
| [Java] 코딩 25 - 프로그래머스 기출 문제(JAVA) / 부족한 금액 계산하기 / Day 22 (0) | 2025.09.29 |
| [Java] 코딩 24 - 프로그래머스 기출 문제(JAVA) / 문자열 내림차순으로 배치하기 / Day 21 (0) | 2025.09.26 |
| [Java] 코딩 23 - 프로그래머스 기출 문제(JAVA) / 약수의 개수와 덧셈 / Day 21 (0) | 2025.09.26 |