튜플

최진훈·2022년 5월 17일
0

programmers

목록 보기
72/73


문제에서 3번의 예시를 보면 {1,2,3,4}라는 집합으로 (2,1,3,4)라는 튜플을 알아내는 것이 이해가 잘안됐다. 요소들은 알 수 있지만 순서까지는 추측이 불가능했다. 그래서 질문하기를 찾아본 결과 요소의 개수가 적은 집합을 기준으로 먼저나온 숫자순서를 튜플의 순서로 예측할 수 있다는 글을 보았다. 따라서 집합을 요소의 개수로 정렬을 하는 과정을 넣어야 할 듯 하다.
각각의 요소들을 ,를 기준으로 나누고 개수를 기준으로 정렬한 뒤 각 집합의 요소들을 answer에 더해줄 것이다. 물론 중복은 없어야 한다.
정리해보면

  1. 입력받은 s,를 기준으로 나누어 나오는 요소들을 새로운 배열에 저장한다.
  2. 새로운 배열을 길이순으로 작은것부터 정렬한다.
  3. 배열의 원소들을 하나씩 꺼내서 중복이 없이 answer에 저장한다.

간단하게 보면 이런 과정이지만 중간중간에 분명 문제가 생길 것이다. 일단 중복이 없어야하니 set자료형을 이용하여 코드를 짜볼 것이다.

레고레고

,를 기준으로 s를 나누었더니 각 조합 사이사이의 ,로도 나누어져서 생각한대로 값이 나오지 않았다. 따라서 },{를 기준으로 split함수를 사용하되 맨처음과 맨끝의 두자리인 {{,}}substring함수로 삭제해주었다. 또한 새로만든 배열에서 값을 꺼내올때 조합안의 숫자들을 일일히 answer에 담아야하므로 ,를 기준으로 한번 더 나누어주었고, 그렇게 set함수에 중복없이 담겨진 튜플을 다시 하나씩 꺼내어 answer에 저장해주었다.

통과~~~

profile
레고레고

0개의 댓글