반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

욱꾸미의 주꾸미 발

[코딩테스트] 프로그래머스 - 큰 수 만들기(Java, Level2, 실패코드) 본문

코딩테스트/프로그래머스

[코딩테스트] 프로그래머스 - 큰 수 만들기(Java, Level2, 실패코드)

욱꾸미 2022. 12. 9. 00:24
반응형

안녕하세요~

오늘은 나름 긴시간동안 머리를 싸매고 풀었지만 실패한 문제에 대해 기록해보고자 합니다.

꽤 많은 시간을 쏟아부었는데 아쉽네요 ㅠㅠ

 

다른분들은 다똑같이 풀었던데 정말 생각이 그렇게 나는건지... 아니면 다른분들꺼보고 그렇게 이해를 하신건지.. 

어렵습니다 참🤣

 

저는 테스트케이스10번에서 시간초과가 나오네요~

혹시라도 수정해서 시간을 더 단축할 수 있는 부분이 있다면 댓글 부탁드립니다. :D

https://school.programmers.co.kr/learn/courses/30/lessons/42883

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

제가 작성한 코드입니다.

import java.lang.*;

class Solution {
    public String solution(String number, int k) {

        StringBuffer sb=new StringBuffer(number);
        int start=0;
        
        for(int i=0;i<k;i++)
        {
            for(int j=start;j<sb.length()-1;j++)
            {      
                if(sb.charAt(j)=='9')
                    continue;
                int a1=sb.charAt(j)-'0';
                int a2=sb.charAt(j+1)-'0';
                    
                if(a1<a2)
                {
                    if(a1==9)
                        start=j;
                    sb.deleteCharAt(j);  
                    break;
                }   
            }
        }

        
        String answer = sb.toString();
       
        if(sb.length()>number.length()-k)
        {
            answer=answer.substring(0,number.length()-k);
        }
        
        return answer;
    }
}

나름 StringBuffer까지 써가며 String에서 시간도 줄였지만 여전히 시간초과입니다.

 

j번째와 j+1번째를 비교해 j번째가 더 작은걸 찾는걸 k번 반복한다 입니다.

또한 9에대한 처리는

예를들어 숫자가 '9993124'라면 앞의 999는 더이상 볼 필요가 없는 수이기에 index를 설정해 범위를 조금이라도 줄이고자 했습니다.

 

코딩 어렵네요 ㅠㅠ

반응형