하루에 한 문제
[프로그래머스 2019 카카오 개발자 겨울 인턴십] 튜플 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/64065
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
class Solution {
public int[] solution(String s) {
String []tmp=s.split("\\{");
String []str=new String[tmp.length-2];
for(int i=0; i<str.length; i++) {
str[i]=tmp[i+2].substring(0, tmp[i+2].length()-2);
}
int[] answer = new int[str.length];
Set <String> set = new HashSet<>();
Arrays.sort(str, (o1,o2)-> o1.length()-o2.length());
for(int i=0; i<str.length; i++) {
String [] divide=str[i].split(",");
for(int j=0; j<divide.length; j++) {
if(set.contains(divide[j])) continue;
answer[i]=Integer.parseInt(divide[j]);
set.add(divide[j]);
}
}
return answer;
}
}
소요시간 : 20분
우선 큰 로직은 입력으로 받은 튜플을 각 집합의 길이 오름차순으로 정렬합니다.
만약 입력이 이렇게 들어온다면
{2} , {2,1}, {1,2,3}, {1,2,4,3} 처럼 정렬해줍니다.
그리고 집합을 순회하면서 Set을 이용해서 중복체크를 해줍니다.
만약 Set에 없는 원소라면 추가해주고 있는 원소라면 Skip해줍니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 순위 -Java (0) | 2020.12.25 |
---|---|
[프로그래머스] 네트워크 -Java (1) | 2020.12.24 |
[프로그래머스 Summer/Winter Coding(~2018)] 점프와 순간이동 -Java (0) | 2020.12.24 |
[프로그래머스] 단속카메라 -Java (0) | 2020.12.23 |
[프로그래머스] 입국심사 -Java (0) | 2020.12.23 |
Comments