[2020-11-11] 문자열 다루기 기본

2020. 11. 11. 10:24·코딩테스트

푼 시간 : 40분

언어 : 자바

 


 

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

 

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

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

programmers.co.kr

 

지문을 잘 읽어봐야 한다는 것을 강조하는 문제였다...

s가 4와 6이어야 한다는 조건을 보지 못하고 다 만들어놓고나서

엄청나게 헤맸다... 다음부터는 지문을 잘 읽어봐야겠다.

 

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int count=s.length();
        int temp=0;
        
        for(int i=0; i<count; i++){
            if((s.charAt(i)>=65) && (s.charAt(i)<=90)){
            // 대문자 A부터 Z까지
                temp++;
                break;
            }
            else if((s.charAt(i)>=97) && (s.charAt(i)<=122)){
            // 소문자 a부터 z까지
                temp++;
                break;
            }
        }
        
        if((count!=4 && count!=6)||temp>0)
        // s의 길이 4, 6이 아닐경우, temp가 0보다 클 경우
            answer=false;
        
        return answer;
    }
}

 

코드를 제출하고 보니 더 간소화시킬 방법이 있을 것 같아

고민하다가 다시 간소화 해봤다. 코드가 너무 거쳐가는게 많은 것 같다.

 

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int count=s.length();
        
        for(int i=0; i<count; i++){
            if(((s.charAt(i)>=65) && (s.charAt(i)<=90)) ||
            // 대문자 A~Z
               ((s.charAt(i)>=97) && (s.charAt(i)<=122)) ||
               // 소문자 a~z
               count!=4 && count!=6){
               // s의 길이
                answer=false;
                break;
            }
        }
        
        return answer;
    }
}

 

얼마 바뀐건 없지만 temp라는 변수로 메모리를 차지하지 않고,

if를 두번 쓸 필요가 없어졌다.

생각보다 조건 하나를 못 건드려서 어려웠던 것 같다...

'코딩테스트' 카테고리의 다른 글

[2020-11-11] 수박수박수박수박수박수?  (0) 2020.11.11
[2020-11-11] 서울에서 김서방 찾기  (0) 2020.11.11
[2020-11-10] 문자열 내 p와 y의 개수  (0) 2020.11.10
[2020-11-09] 문자열 내 마음대로 정렬하기  (0) 2020.11.10
[2020-11-05] 나누어 떨어지는 숫자 배열  (0) 2020.11.05
'코딩테스트' 카테고리의 다른 글
  • [2020-11-11] 수박수박수박수박수박수?
  • [2020-11-11] 서울에서 김서방 찾기
  • [2020-11-10] 문자열 내 p와 y의 개수
  • [2020-11-09] 문자열 내 마음대로 정렬하기
jun96
jun96
프로그래밍 공부
  • jun96
    jun의 공부노트
    jun96
  • 전체
    오늘
    어제
    • 분류 전체보기 (66)
      • Spring (6)
        • 개념 (3)
        • 에러 (1)
      • Java (1)
      • Book (20)
        • 모던 자바 인 액션 (12)
        • 디자인 패턴의 아름다움 (7)
      • Algorithm (1)
      • 코딩테스트 (35)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 이력서
  • 공지사항

  • 인기 글

  • 태그

    모던자바인액션
    Algorithm
    datetime
    스프링
    프로그래머스
    백준
    디자인패턴의아름다움
    python설치
    최프
    DeepDive
    알고리즘
    junit5
    aws에 배포하기
    전자정부프레임워크
    자바
    wikidocs
    아직 미완성
    Java
    도커컨테이너빌드업
    aws배포
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jun96
[2020-11-11] 문자열 다루기 기본
상단으로

티스토리툴바