티스토리 뷰

728x90
 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

풀이

1. 1231234라는 문자열에서 숫자 3개를 제거한다고 가정했을 때 반환해야 하는 문자열 길이는 str.length() - k이다

ex) 1231234에서 3개 제거하면 무조건 4자리 숫자를 반환한다.

2. for문 범위를 문자열 길이 -k까지 돌려준다

3. 두 번째 for 문은 가장 큰 값을 찾기 위한 for문 

4 만약 가장 큰 값을 찾았다면 큰 값이 위치한 index+1부터 탐색을 해준다. 

5. answer+=max 해서 String을 반환하면 오류 난다 StringBuilder로 해결하자

@Test
public void 정답() {
    System.out.println(solution("1231234", 3));
}

public String solution(String number, int k) {
    StringBuilder answer = new StringBuilder();
    int max = 0;
    int index = 0;
    for (int i = 0; i < number.length() - k; i++) {
        max = 0;
        for (int j = index; j <= i + k; j++) {
            int temp = number.charAt(j) - '0';
            if (max < temp) {
                max = temp;
                index = j + 1;
            }
        }
        answer.append(max);
    }
    return answer.toString();
}
댓글
최근에 달린 댓글
최근에 올라온 글
Total
Today
Yesterday
«   2025/04   »
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