Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
관리 메뉴

csct3434

[level 2] 튜플 - 64065 본문

프로그래머스

[level 2] 튜플 - 64065

csct3434 2024. 2. 29. 03:25

문제 링크

 

프로그래머스

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

programmers.co.kr

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;

class Solution {

    public int[] solution(String s) {
        int[] answer;
        int count = 0;

        String[] subsets = s.replaceAll("},", "} ").substring(1, s.length() - 1).split(" ");
        Arrays.sort(subsets, Comparator.comparingInt(String::length));

        answer = new int[subsets.length];
        HashSet<String> used = new HashSet<>();

        for (String subset : subsets) {
            String nextNumber = Arrays.stream(subset.substring(1, subset.length() - 1).split(","))
                .filter(number -> !used.contains(number))
                .findFirst()
                .orElse("0");

            used.add(nextNumber);
            answer[count++] = Integer.parseInt(nextNumber);
        }

        return answer;
    }
}