크기가 작은 부분 문자열

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' 카테고리의 다른 글
  • 행렬의 덧셈
  • 문자열 내림차순으로 배치하기
  • 수박수박수박수박수 ~~~
  • 나누어 떨어지는 숫자 배열
kwh_coding
kwh_coding
성장하는 괴물 성괴 김우형
  • kwh_coding
    코딩 일기
    kwh_coding
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • ERP Project
      • NAVER CLOUD Web DevOps
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
  • 블로그 메뉴

    • 홈
    • GitHub
    • Notion
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바