-
[프로그래머스] 튜플 - Java공부/프로그래머스 2024. 7. 3. 22:45728x90
https://school.programmers.co.kr/learn/courses/30/lessons/64065
프로그래머스 튜플 자바 풀이
난이도: Lv2
풀이
우선 '{'를 제거하였고 그 후 마지막의 }'}'를 제거하여 구분할 수 있게 하였다.
그 후 '},'를 통하여 각 집합을 구분하였다.
집합을 구분 후, 각 집합의 원소의 갯수에 따라 정렬하였다.
중복된 원소가 없는 튜플이라고 주어졌으므로,
각 중복된 숫자가 나오지 않게 HashSet으로 중복 여부를 파악 후
중복되지 않았을 경우 튜플에 주가하였다.
그 후 중복 여부를 파악하기 위해 HashSet에 값을 추가하였다.
코드
import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.stream.Stream; class Solution { public int[] solution(String s) { s=s.replaceAll("\\{", ""); s=s.substring(0,s.length()-2); String[] arr=s.split("\\}\\,"); Arrays.sort(arr,Comparator.comparingInt(String::length)); HashSet<Integer> set = new HashSet<>(); ArrayList<Integer> list = new ArrayList<>(); for(int i=0;i<arr.length;i++){ int[]tuple = Stream.of(arr[i].split(",")).mapToInt(Integer::parseInt).toArray(); for(int num:tuple){ if(!set.contains(num)){ list.add(num); set.add(num); } } } int[] answer = new int[list.size()]; for(int i=0;i<list.size();i++){ answer[i]=list.get(i); } return answer; } }
728x90반응형'공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 피로도 - Java (0) 2024.07.05 [프로그래머스] 프로세스 - Java (0) 2024.07.04 [프로그래머스] 기능개발 - Java (0) 2024.06.30 [프로그래머스] 의상 - Java (1) 2024.06.06 [프로그래머스] [1차] 캐시 - Java (1) 2024.06.03