본문 바로가기
문제 풀이/Programmers

[프로그래머스] 64065번: 튜플 (JavaScript)

by Electrohyun 2025. 7. 8.


 

생각 과정

 

배열(같은 것)이 여러 개 있지만, 값은 하나씩 늘어나는 형태이고, 순서는 처음의 순서를 차례대로 기억한다. 이 때, 중복은 없다.

 

중복은 없다는 것에서 Set 자료구조가 가장 먼저 떠올랐고, 그게 정답이었다.

 

function ascendingOrder(targetArr) {
  return targetArr.slice().sort((a, b) => a.length - b.length);
}

function parseTuple(targetArr) {
  const strArr = targetArr.split("},{");
  const result = [];
  
  strArr[0] = strArr[0].slice(2);
  strArr[strArr.length - 1] = strArr[strArr.length - 1].slice(0, -2);

  for (let i = 0; i < strArr.length; i++) {
    const nums = strArr[i].split(",");
    const intArr = [];

    for (let j = 0; j < nums.length; j++) {
      intArr.push(Number(nums[j]));
    }
    
    result.push(intArr);
  }

  return result;
}

function tupleToArray(targetArr) {
  const set = new Set();

  for (let i = 0; i < targetArr.length; i++) {
    for (let j = 0; j < targetArr[i].length; j++) {
      set.add(targetArr[i][j]);
    }
  }

  return [...set];
}

function solution(s) {
  const parsed = parseTuple(s);
  const sorted = ascendingOrder(parsed);
  const answer = tupleToArray(sorted);

  return answer;
}