크기가 작은 부분 문자열

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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바