본문 바로가기
알고리즘/Programmers

[Programmers] 문자열 다루기 기본

by 소꿍 2020. 10. 4.

programmers.co.kr/learn/courses/30/lessons/12918

 

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

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

programmers.co.kr

 

Java

 

public class Solution {
	public boolean solution(String s) {
        if(s.length() == 4 || s.length() == 6) {
        	return s.matches("-?\\d+(\\.\\d+)?");
        } else
        	return false;
	}
}

 


다른 분 코드로 알게 된 방법

 

- Integer.parseInt 사용

public class Solution {
	public boolean solution(String s) {
    	if(s.length() == 4 || s.length() == 6) {
        	try {
            	int x = Integer.parseInt(s);
                return true;
            } catch (Exception e) {
            	return false;
            }
        } else
        	return false;
}

 

비슷하게 Double.parseDouble로도 가능하다 해서 코드를 아래와 같이 작성해 제출해봤는데, 테스트 케이스 1개에서 실패가 떴다... 뭐가 잘못된 건지 찾아봐야겠다.

public class Solution {
	public boolean solution(String s) {
    	if(s.length() == 4 || s.length() == 6) {
        	try {
            	Double.parseDouble(s);
                return true;
            } catch (Exception e) {
            	return false;
			}
        } else
        	return false;
}

 

- charAt 사용

public 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;
}

 

노트패드에 썼던 걸 복붙하니까 들여쓰기가 이상하게 적용돼서 다시 수정했다.

코드블록 작성할 때는 정상적으로 적용돼 있는데..... 티스토리 너무 불편...

댓글