[프로그래머스] LEVEL2 튜플 JAVA

Pixel Dophin·2023년 7월 24일
0

프로그래머스

목록 보기
26/55

튜플

문제링크

풀이

comparator를 활용해 문자를 길이 순서대로 정렬하고, 이후 각 string을 숫자로 변환하여 숫자가 있는 지 여부를 확인 후 answer의 각 순서에 맞게 숫자를 넣었다.

코드

import java.util.*;

class Solution {
    public int[] solution(String s) {
        String[] split = (s.substring(1, s.length() - 1) + ",").split("},");
        
        Arrays.sort(split, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s1.length() - s2.length();
            }
        });
        
        int[] answer = new int[split.length];
        Set<Integer> set = new HashSet<>();
        
        for (int i = 0; i < split.length; i++) {
            String[] str = split[i].substring(1, split[i].length()).split(",");
            
            for (int j = 0; j < str.length; j++) {
                int num = Integer.parseInt(str[j]);
                if (!set.contains(num)){
                    answer[i] = num;
                    set.add(num);
                    break;
                }
            }
        }
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

글 잘 봤습니다.

답글 달기

관련 채용 정보