728x90
반응형
SMALL
📌 문제 정보
- 출처: 문제 링크
- 난이도: ⭐
- 문제 유형: 문자열
- 사용 언어: Java
🔍 문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼 있는지 확인해 주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
💡 풀이 노트
💡 핵심 조건
1. 문자열 길이는 4 또는 6이어야 함.
2. 문자열의 모든 문자는 숫자여야 함.
if(s.length() == 4 || s.length() == 6 )
- 문제 조건에 따라, 4자리 또는 6자리일 때만 검사 진행
- 그 외의 자리수는 `false` 반환
if(Character.isDigit(c)) return false;
- 문자가 숫자가 아니면 `false` 반환
🚀 코드 (Java)
class Solution {
public boolean solution(String s) {
if(s.length() == 4 || s.length() == 6 ){
for(char c: s.toCharArray()){
if(!Character.isDigit(c)) return false;
}
}
else
return false;
return true;
}
}
🖥 실행 결과
입력 & 출력
s return
"a234" false
"1234" true
🔄 추가 정보
`String` 을 `for-each` 로 순회하기
자바에서 `for-each` 문법은 `Iterable` 인터페이스를 구현한 객체만 사용 가능
for (Type item : iterableCollection) {
// ...
}
`String` 은 `Iterable<Character>` 를 구현하지 않았기 때문에 아래 코드는 컴파일 에러
String s = "hello";
for (char c : s) { // ❌ 에러!
System.out.println(c);
}
방법 1: 인덱스로 직접 접근
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
}
방법 2: toCharArray() 사용
for (char c : s.toCharArray()) {
// 각 문자 순회 가능
}
→ 이 방식은 `char[]` 배열이므로 `for-each` 문법 사용 가능!
`Character` 클래스 개요
자바의 `Character` 클래스는 문자에 대한 여러 유틸리티 메서드 제공
이 클래스의 메서드는 대부분 `static` 이라서 `Character.isXXX(c)` 형식으로 사용
| 메서드 | 설명 | 예시 |
| `Character.isDigit(char c)` | 숫자인지 확인 (0~9) | `'5' → true, 'a' → false` |
| `Character.isLetter(char c)` | 알파벳인지 확인 | `'A' → true, '1' → false` |
| `Character.isLetterOrDigit(char c)` | 문자나 숫자인지 확인 | `'a' → true, '7' → true, '!' → false` |
| `Character.isWhitespace(char c)` | 공백 문자인지 확인 | `' ', '\\n', '\\t' 등` |
| `Character.isUpperCase(char c)` | 대문자인지 | `'A' → true, 'a' → false` |
| `Character.isLowerCase(char c)` | 소문자인지 | `'a' → true, 'A' → false` |
📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest
728x90
반응형
LIST