문제에서 3번의 예시를 보면 {1,2,3,4}라는 집합으로 (2,1,3,4)라는 튜플을 알아내는 것이 이해가 잘안됐다. 요소들은 알 수 있지만 순서까지는 추측이 불가능했다. 그래서 질문하기를 찾아본 결과 요소의 개수가 적은 집합을 기준으로 먼저나온 숫자순서를 튜플의 순서로 예측할 수 있다는 글을 보았다. 따라서 집합을 요소의 개수로 정렬을 하는 과정을 넣어야 할 듯 하다.
각각의 요소들을 ,
를 기준으로 나누고 개수를 기준으로 정렬한 뒤 각 집합의 요소들을 answer
에 더해줄 것이다. 물론 중복은 없어야 한다.
정리해보면
s
를 ,
를 기준으로 나누어 나오는 요소들을 새로운 배열에 저장한다.answer
에 저장한다.간단하게 보면 이런 과정이지만 중간중간에 분명 문제가 생길 것이다. 일단 중복이 없어야하니 set
자료형을 이용하여 코드를 짜볼 것이다.
레고레고
,
를 기준으로 s
를 나누었더니 각 조합 사이사이의 ,
로도 나누어져서 생각한대로 값이 나오지 않았다. 따라서 },{
를 기준으로 split
함수를 사용하되 맨처음과 맨끝의 두자리인 {{
,}}
는 substring
함수로 삭제해주었다. 또한 새로만든 배열에서 값을 꺼내올때 조합안의 숫자들을 일일히 answer
에 담아야하므로 ,
를 기준으로 한번 더 나누어주었고, 그렇게 set
함수에 중복없이 담겨진 튜플을 다시 하나씩 꺼내어 answer
에 저장해주었다.
통과~~~