본문 바로가기

ALGORITHM

[프로그래머스 Java] 문자열 다루기 기본

 

코딩테스트 연습 - 문자열 다루기 기본

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이

programmers.co.kr

⏱소요 시간 - 1시간

 

🔑해결 방법

 

로직 짜는 건 진짜 금방 짰다. 10분 정도? 근데,,,

return문 반환, 숫자가 들어왔는지 비교하는거에서 && 써놓고 계속 안된다 이러고 있었다 하.....^^

공백 제거해준다고 trim()은 왜 썼으며 (어차피 if문에서 걸러질 텐데 제정신 아님ㅋㅋ)

현재 시각 새벽 네시.... 졸려서 정신 나간거라고 하자.........ㅎ

 

나는 아스키 코드를 이용해서 풀었는데 charAt(i) 으로 받아서 풀어도 상관없다.

소스 코드는 아래 첨부하겠다.

 

 

🔎소스 코드

 

package step1;

// 문자열 다루기 기본
public class Ex16 {

	public static void main(String[] args) {
		
		System.out.println(solution("a234")); // f
		System.out.println(solution("1234")); // t
		System.out.println(solution("123 ")); // f
		System.out.println(solution("123")); // f
		System.out.println(solution("1qqq")); // f
	}
	
	public static boolean solution(String s) {
		
		boolean answer = false;
		
		char[] arr = s.toCharArray();
		
		if(s.length() == 4 || s.length() == 6) {
			
			for(int i = 0; i < arr.length; i++) {
				
				if(48 > arr[i] || arr[i] > 57) { // 숫자가 아닌게 하나라도 나오면
					return answer; // false
				} 

			}
			
			return true; // 문자열의 길이도 맞고 모두 숫자라면
			
		} 
		
		return answer; // false // 문자열의 길이가 4,6이 아닌 경우
		
	}
	
}

 

 

🔎charAt()을 이용한 코드

 

package step1;

// 문자열 다루기 기본
public class Ex16_1 {

	public static void main(String[] args) {
		
		System.out.println(solution("a234")); // f
		System.out.println(solution("1234")); // t
		System.out.println(solution("123 ")); // f
		System.out.println(solution("123")); // f
		System.out.println(solution("1qqq")); // f
	}
	
	public static boolean solution(String s) {
		
		boolean answer = false;
		
		if(s.length() == 4 || s.length() == 6) {
			
			for(int i = 0; i < s.length(); i++) {
				
				if('0' > s.charAt(i) || s.charAt(i) > '9') {
					return answer;
				}
				
			}
			return true;
			
		}
		
		return answer; // false // 문자열의 길이가 4,6이 아닌 경우
		
	}
	
}