문제 풀이 (JAVA)
class Solution {
public boolean solution(String s) {
boolean answer = true; // 리턴 논리 변수 선언
char [] ch = new char[s.length()]; // 문자열 길이만큼 문자 배열 선언
ch=s.toCharArray(); // 문자열 -> 문자배열 변환하여 저장
int cnt=0;
for(int i=0; i<s.length(); i++){
for(int j=0; j<=9; j++){
answer = (Integer.toString(j).charAt(0)==ch[i]) ? true :false; // 숫자 j를 문자로 변환하여 문자배열과 비교하여 숫자이면 0~9사이 숫자이면 true , 숫자가 아닐경우 false 반환
if(answer==true){ // 숫자일경우 cnt 카운트 1 증가
cnt++;
break;
}
}
}
boolean result = (cnt==ch.length && ch.length==4 ||ch.length==6) ? true : false; // 숫자 카운트 cnt가 문자배열의 길이와 같다면 숫자로만 이루어져 있는것이며, 길이가 4 또는 6일 경우에만 true이고 나머지는 false를 리턴한다.
return result;
}
}
주요 핵심 포인트
1. 들어온 문자열을 문자배열로 변환하였다.
2. 이중 for문을 돌려 문자배열 하나씩 0~9사이 숫자 문자인지 파악하여 동일하면 true 카운트를 증가시켰다.
3. true 카운트가 문자배열의 길이와 동일하면 숫자로만 이루어져 있는 문자열이다.
'프로그래머스(JAVA)' 카테고리의 다른 글
문자열 내 p와 y의 개수 (0) | 2022.04.17 |
---|---|
문자열 내림차순으로 배치하기 (0) | 2022.04.17 |
서울에서 김서방 찾기 (0) | 2022.04.17 |
소수 찾기 (0) | 2022.04.17 |
수박수박수박수박수? (0) | 2022.04.16 |