프로그래머스 코딩테스트 연습문제 - 문자열 다루기 기본 (Java)
URL
programmers.co.kr/learn/courses/30/lessons/12918
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
성공 코드
저같은 경우는 문제를 보자마자 String을 int로 형변환 시 Exception이 발생하지라는 생각이 들어 try catch를 활용했습니다.
import java.util.*;
class Solution {
public boolean solution(String s) {
boolean answer = true;
if(s.length() != 4 && s.length() != 6){
return false;
}else{
try{
int temp = Integer.parseInt(s);
}catch(Exception e){
return false;
}
}
return answer;
}
}
① 우선 문자열 길이가 4또는 6이 아니면 false를 리턴하게 해줍니다. if(s.length() != 4 && s.length() != 6) { return false; }
② else 문에서는 해당 문자열이 숫자만있는지 문자와 섞여 있는지를 판단해 전부 숫자면 true
, 문자가 섞여있으면 false
를 return 하도록 합니다.
③ 이 때 try catch 문을 사용해 Integer.parseInt(s);
로 문자열을 정수로 형변환 했을 때, 전부 숫자의 경우는 형변환이 정상적으로 되어 Exception
이 발생하지 않기 때문에 catch문을 타지않고 기본 초기화 값인 true로 return 됩니다.
④ 하지만 문자가 섞여 있을 경우에는 Integer.parseInt(s);
에서 Exception
이 발생하기 때문에 catch문을 타게되어 false로 리턴됩니다.
* 직접 한번 풀어보시고 다른 성공 코드 유형들도 보시는 거 추천드립니다. 모두 화이팅 입니다. ( ' ^ ' ) !
'개발 기록 > 코딩테스트 풀이 기록' 카테고리의 다른 글
[알고리즘, 코딩 테스트] 문자열 내 p와 y의 개수 (프로그래머스) - Java (0) | 2021.03.25 |
---|---|
[알고리즘, 코딩 테스트] 가운데 글자 가져오기, substring() - Java / 프로그래머스 (0) | 2021.03.25 |
[알고리즘, 코딩 테스트] 수박수박수박수? (프로그래머스) - Java (0) | 2021.03.25 |
[알고리즘, 코딩 테스트] 프로그래머스 서울에서 김서방 찾기 (프로그래머스) - Java (1) | 2021.03.23 |
[백준 BOJ] 2739번 구구단 - Java (알고리즘 : 수학) (0) | 2021.03.22 |