크기가 작은 부분 문자열

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

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바