프로그래머스[Level2] - 튜플 [문자열][2019 카카오 개발자 겨울 인턴십] - Java :: 매운코딩
728x90
300x250

programmers.co.kr/learn/courses/30/lessons/64065

 

코딩테스트 연습 - 튜플

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

 

 

런타임 에러로 효율이 아주 낮은.. 1번째 코드.. 

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = {};
        
        s = s.replace("{","");
        
        // 원소가 1개인가?
        if(!s.contains("},")){
            answer = new int[1];
            answer[0] = Integer.parseInt(s.replace("}",""));
        }
        else{
            String[] sp = s.split("},");
            answer = new int[sp.length];
            
            
            for(int i = 0 ; i< sp.length; i++) {
                sp[i] = sp[i].replace("}","");                
            }
                
            //정렬
            Arrays.sort(sp, new Comparator<String>() {
                @Override                    
                public int compare(String s1, String s2) {                        
                    return s1.length() - s2.length();
                }
            });
            
            // for (int i = 0; i< sp.length; i++) {
            //     System.out.println(sp[i]);
            // }

            for(int i =0; i<sp.length;i++){
                sp[i] = sp[i].replace(",","");
                for(int j = i+1;j<sp.length;j++){
                    if(sp[j].contains(sp[i])){
                        sp[j] = sp[j].replaceFirst(sp[i],"");
                    }
                }
                answer[i] = Integer.parseInt(sp[i]);
            }

        }
        
        return answer;
    }
}

 

 

split()과 compare를 적절히 사용해야 하는 것은 알았지만..

replace할때 바꿀문자열이 없어도 에러없이 동작하는줄은 몰랐다.. 기본적인 내장함수들에 대한 공부가 필요한듯!

거의 다 풀었는데 아쉽당~~ㅠ

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = {};
        
        s = s.substring(2,s.length()-2).replace("},{","/");
        
        String[] sp = s.split("/");
        answer = new int[sp.length];


        //정렬
        Arrays.sort(sp, new Comparator<String>() {
            @Override                    
            public int compare(String s1, String s2) {                        
                return s1.length() - s2.length();
            }
        });

        // for (int i = 0; i< sp.length; i++) {
        //     System.out.println(sp[i]);
        // }

        ArrayList<Integer> list = new ArrayList<Integer>();
        
        for(int i =0; i<sp.length;i++){
            String[] sp2 = sp[i].split(",");
            for(int j = 0;j<sp2.length;j++){
               if(!list.contains(Integer.parseInt(sp2[j])))
                   list.add(Integer.parseInt(sp2[j]));
            }
            
        }

        for(int i = 0 ; i<list.size();i++){
            answer[i] = list.get(i);
        }
        
        
        return answer;
    }
}
728x90

+ Recent posts