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

2022. 6. 29. 00:17·알고리즘/알고리즘 풀이
반응형

..?? 10점?

 

 

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

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

programmers.co.kr

 

 

문제 설명

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

 

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

 

입출력 예

반응형

CODE

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

어.. 어려운 건 딱히 없어서...설명을 해야하나 싶지만 10점 맞은 기념으로 주저리 주저리 써보자면.. 일단 문제에서 주는 첫 번째 조건이 s의 길이가 4이거나 6인 경우만 true라고 해서 문자열 길이 조건을 먼저 걸어주었고 길이가 4이거나 6인 경우이고 이제 문자에 숫자가 포함되었는지, 아니면 숫자 외의 다른 문자가 포함되었는지 검사해야한다. 그래서 Integer.valueOf(s)로 문자열을 숫자로 변경해주었고, 여기에서 에러가 터지면.. 즉, 변환이 되지 않으면 숫자 외에 다른 값이 포함되어 있는 거라 catch에서 return false로 끝냈다.

valueOf()를 사용한 이유는 최근 김영한님 스프링 강의에서 valueOf()를 사용할 일도 있었고 예외처리를 좀 자주했어서 이런 로직을 금방 생각할 수 있었던 거 같다. 근데 또 가만히 생각해보니 문자열를 숫자로 변환하는 함수 중에 parseInt()도 있다는 게 생각났다. 두 함수의 차이점이 궁금해서 찾아봤다.

parseInt와 valueOf의 차이점

결론부터 말하자면 반환 타입이 다르다.

  • parseInt()는 int 타입을 반환한다.         public static int parseInt(String s) throws NumberFormatException {}
  • valueOf()는 Integer 객체를 반환한다.  public static Integer valueOf(String s) throws NumberFormatException {}

내 코드의 경우에는 자동 형변환으로 인해 int 변수에 값이 잘 담길 수 있었던 거 같다. 그래도 굳이 Integer Object 메서드를 형변환해주는 과정이 들어가기 때문에 Primitive type인 int 변수에 담을 때는 parseInt()를 사용하는 게 더 좋을 것 같다.

 

실행 결과

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • [프로그래머스_1] 폰켓몬 JAVA
  • [프로그래머스_1] 하샤드 수 JAVA
  • [프로그래머스_1] 약수의 합 JAVA
  • [프로그래머스_1] 가운데 글자 가져오기 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    토이프로젝트
    코딩테스트
    SpringBoot를 이용한 RESTful Web Service 개발
    백준
    react
    IT
    스프링부트
    토비의스프링부트
    프론트엔드
    알고리즘
    프로그래머스
    방통대
    oracle
    QueryDSL
    자바스크립트
    인프런
    Java
    RESTful
    springboot
    JPA
    MSA
    SQL
    개발자
    Spring
    넥사크로
    egov
    에러해결
    전자정부프레임워크
    기출문제
    운영체제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[프로그래머스_1] 문자열 다루기 기본 JAVA
상단으로

티스토리툴바