-
프로그래머스 - 튜플 (JavaScript)etc/coding test 2020. 4. 28. 09:45
문제:https://programmers.co.kr/learn/courses/30/lessons/64065
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 과정
처음에 문제를 잘못 이해해서
튜플을 나타내는 집합의 요소 중 가장 긴 게 곧 튜플인 줄 알았다..
집합으로 각 요소의 위치를 확인할 수 있으려면
집합의 크기가1인 것부터 차례대로 확인해야 했음
인풋이 string이기 때문에 원하는 모양을 만드는 게 조금 복잡했다.
1. 인풋을 배열로 쪼갠다.
2. 배열을 정렬한다.
3. 정렬된 배열을 순환하면서 튜플을 채운다.코드
function solution(s) { const answer = []; // 양 끝의 {}를 제거 + },를 기준으로 split const tupleValues = s.slice(1, s.length - 1).split("},"); // 정렬 tupleValues.sort((a, b) => { if (a.length > b.length) { return 1; } if (a.length < b.length) { return -1; } return 0; }); // 튜플 만들기 for (let i = 0; i < tupleValues.length; i++) { tupleValues[i] = tupleValues[i].replace("{", ""); tupleValues[i] = tupleValues[i].replace("}", ""); const value = tupleValues[i].split(","); for (let j = 0; j < value.length; j++) { if (answer.indexOf(Number(value[j])) === -1) { answer.push(Number(value[j])); break; } } } return answer; }
생각해보고 싶은 점
정규표현식을 좀 공부해야할 것 같다. 매번 미뤄서..
출처:
프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'etc > coding test' 카테고리의 다른 글
프로그래머스 - 쇠막대기 (JavaScript) (0) 2020.05.05 프로그래머스 - 문자열 압축 (JavaScript) (0) 2020.05.04 프로그래머스 - 124 나라의 숫자 (JavaScript) (0) 2020.04.27 프로그래머스 - 탑 (JavaScript) (0) 2020.04.26 프로그래머스 - 타겟 넘버 (JavaScript) (0) 2020.04.23