크기가 작은 부분 문자열

2024. 4. 3. 19:56·코딩테스트/프로그래머스 Lv1

 

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        
        if(p.length() >= 1 && p.length() <= 18){
            
        long[] num = {};
        
        long num2 = Long.parseLong(p);
        
        for(int i = 0; i < t.length(); i++){
            
            if(i + p.length() == t.length() + 1){
                break;
            }
            num = new long[i + 1];
            
        }
        
        for(int i = 0; i < t.length(); i++){
            
            if(i + p.length() == t.length() + 1){
                
                break;
                
            }
            
            num[i] = Long.parseLong(t.substring(i, i + p.length()));
        }
        
        
        for(int i = 0; i < num.length; i++){
            
            if(num2 >= num[i]){
                answer = answer + 1;
            }
            
        }
        
        }
        
        return answer;
        
        
    }
}

또 다시 답이 나왔어도 찜찜한 문제였다. 배열을 무조건 사용해야 하는가이다.

배열을 사용한다면 이러한 문제에서는 배열의 크기가 동적으로 변해야 하는데 없어도 되는 코드가 생김으로 코드가 복잡해지는 결과를 초래할 수 있다. 

 

class Solution {
  public int solution(String t, String p) {
        int pLength = p.length();
        long pValue = Long.parseLong(p);
        int answer = 0;
        for (int i = 0; i <= t.length() - pLength; i++) {
            long tValue = Long.parseLong(t.substring(i, i + pLength));
            if (tValue <= pValue)
                answer++;
        }
        return answer;
    }
}

하지만 도저히 생각해도 배열없이 풀 방법이 생각나지 않았다. 

이 코드는 불필요한 객체를 줄이고 문자열에서 숫자를 직접 파싱하여 실행 시간에 더욱 효율적인 코드라고 생각이 들었다. 

 

 


 

출처: 프로그래머스 코딩 테스트 연습  https://programmers.co.kr/learn/challenges

저작자표시 (새창열림)

'코딩테스트 > 프로그래머스 Lv1' 카테고리의 다른 글

행렬의 덧셈  (1) 2024.04.03
문자열 내림차순으로 배치하기  (2) 2024.04.03
수박수박수박수박수 ~~~  (0) 2024.04.03
나누어 떨어지는 숫자 배열  (0) 2024.04.03
두 정수 사이의 합  (2) 2024.04.03
'코딩테스트/프로그래머스 Lv1' 카테고리의 다른 글
  • 행렬의 덧셈
  • 문자열 내림차순으로 배치하기
  • 수박수박수박수박수 ~~~
  • 나누어 떨어지는 숫자 배열
whkim98
whkim98
꾸준히 내 것으로 만드는 게시글을 작성하자
  • whkim98
    내 일기장
    whkim98
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • Project
        • Insty
        • ERP
      • Cloud
        • NAVER CLOUD Web DevOps
        • Public
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
        • 리눅스마스터
        • AWS
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
      • DevOps
  • 블로그 메뉴

    • 홈
    • GitHub
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    Python
    Java
    Tomcat
    gitbash
    코딩
    Postman
    CORS
    annotation
    RDBMS
    spring
    Cloud
    web
    React
    해시 암호화
    django
    js
    정보처리기사
    javascript
    node
    github
    eGov
    AdSP
    AWS
    코딩테스트
    html
    jsp
    git
    코테
    프로그래머스
    SQLD
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
whkim98
크기가 작은 부분 문자열
상단으로

티스토리툴바