본문 바로가기
알고리즘/알고리즘 설명

20230906 [Java] 문제풀이

by JayAlex07 2023. 9. 8.

20230906 [Java] 문제풀이

 

[프로그래머스] 메뉴 리뉴얼

 

문자열을 리스트로 잘 만들고, 2중 리스트에서, 리스트 크기에 따라서 정렬을 한다

 

{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}

  • 2 를 answer에 제일 앞 부분에 넣는다 (2)
  • {2} 와 {2, 1} 을 비교하여, 없는 숫자를 answer에 넣는다 (1)
  • {2, 1}와 {2, 1, 3} 을 비교하여, 없는 숫자를 answer에 넣는다 (3)
  • {2, 1, 3}와 {2, 1, 3, 4} 을 비교하여, 없는 숫자를 answer에 넣는다 (4)
import java.util.*;
class Solution {
    public ArrayList<Integer> solution(String s) {

        ArrayList<Integer> answer = new ArrayList<>();

        // 앞에 {{ 와 뒤의 }} 빼기
        s = s.substring(2, s.length() - 2);

        s = s.replace("},{", "/");

        String[] stringArray = s.split("/");

        // 문자열 길이를 오름차순으로 정렬
        Arrays.sort(stringArray, (x1, x2) -> x1.length() - x2.length());

        answer.add(Integer.parseInt(stringArray[0].split(",")[0]));

        for (int i = 1; i < stringArray.length; i++) {

            String[] tempArray = stringArray[i].split(",");

            for (String temp : tempArray) {
                int tempNum = Integer.parseInt(temp);
                if(!answer.contains(tempNum)) {
                    answer.add(tempNum);
                }
            }
        }


        return answer;
    }
}

'알고리즘 > 알고리즘 설명' 카테고리의 다른 글

20230913 [Java] 문제풀이  (0) 2023.09.13
20230912 [Java] 문제풀이  (0) 2023.09.12
20230905 [Java] 문제풀이  (0) 2023.09.08
20230904 [Java] 문제풀이  (0) 2023.09.08
20230829 [Java] 문제풀이  (0) 2023.08.29