Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[프로그래머스/알고리즘 고득점 Kit] Greedy #48

Open
sieunnnn opened this issue Jan 10, 2024 · 1 comment
Open

[프로그래머스/알고리즘 고득점 Kit] Greedy #48

sieunnnn opened this issue Jan 10, 2024 · 1 comment
Assignees
Labels
알고리즘 프로그래머스 알고리즘 Kit 문제풀이 프로그래머스 프로그래머스 문제풀이

Comments

@sieunnnn
Copy link
Owner

sieunnnn commented Jan 10, 2024

프로그래머스 알고리즘 고득점 Kit Greedy 문제풀이 입니다.

@sieunnnn sieunnnn added 프로그래머스 프로그래머스 문제풀이 알고리즘 프로그래머스 알고리즘 Kit 문제풀이 labels Jan 10, 2024
@sieunnnn sieunnnn self-assigned this Jan 10, 2024
@sieunnnn
Copy link
Owner Author

큰 수 만들기

처음에는 아래와 같이 조합으로 접근하였습니다.

import java.util.*;

class Solution {
    static String answer = "";
    static String[] numbers;
    static boolean[] visited;
    static String max = "0";
    
    public String solution(String number, int k) {
        numbers = number.split("");
        visited = new boolean[numbers.length];
        combination(0, numbers.length, numbers.length - k);
        
        return max;
    }
    
    public static void combination(int depth, int n, int r) {
        if (r == 0) {
            StringBuilder temp = new StringBuilder();
            for (int i = 0; i < visited.length; i ++) {
                if (visited[i]) {
                    temp.append(numbers[i]);
                }
            }
            if (temp.toString().compareTo(max) > 0) {
                max = temp.toString();
            }
            return;
        }
        
        for (int i = depth; i < n; i++) {
            visited[i] = true;
            combination(i + 1, n, r - 1);
            visited[i] = false;
        }
    }
}

하지만 수의 범위가 100만을 넘어가기에 모든 조합을 찾기란 매우 비효율적 이기에 스택 자료구조를 사용하여 문제를 풀었습니다.
(수의 범위 체크하는 습관을 들여야 하는데 말이죵...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
알고리즘 프로그래머스 알고리즘 Kit 문제풀이 프로그래머스 프로그래머스 문제풀이
Projects
None yet
Development

No branches or pull requests

1 participant