프로그래머스 / Level 2 , 2019 카카오 개발자 겨울 인턴십 , 튜플 자바스크립트 , JS
풀이 시간
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
초반에 분류를 잘못해서 숫자들이 다 한자리수로 분류되는 바람에 코드를 다시 작성하느라 좀 걸렸다.
정규표현식을 써서 숫자들을 분류했음.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/64065
풀이
최종 튜플 결과 값에 담기는 순서는 정해져있다.
주어진 문자열을 정규표현식으로 분류한 뒤 숫자 갯수를 기준으로 오름차순으로 정렬 한뒤
차례대로 새로 나온 값들을 결과값에 추가시켜주면 출력해야할 순서에 맞게 배치된다.
ex)
[ 5 ], [ 4, 5 ], [ 4, 5, 3 ]
결과값 = [5, 4, 3]
새로 추가되는 숫자들을 순서대로 넣어주면 됨. 각 튜플내에서의 순서는 상관없음.
정답
function solution(s) {
let arr = s.split(/[}]/);
let A = [];
for (let i of arr) {
let B = [];
let tmp = i.split(/[{,,]/);
for (let j of tmp) if (!isNaN(j) && j !== "") B.push(Number(j));
if (B.length !== 0) A.push(B);
}
A.sort((a, b) => a.length - b.length);
let result = [];
for (let j of A) result.push(...j.filter((v) => !result.includes(v)));
return result;
}
반응형
'알고리즘 공부 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 / Level 2 , 2019 KAKAO BLIND RECRUITMENT , 오픈채팅방 자바스크립트 , JS (0) | 2022.09.28 |
---|---|
프로그래머스 / Level 2 , 스택/큐 , 프린터 자바스크립트 , JS (0) | 2022.09.26 |
프로그래머스 / Level 2 , 2018 KAKAO BLIND RECRUITMENT , [1차] 뉴스 클러스터링 자바스크립트 , JS (1) | 2022.09.25 |
프로그래머스 / Level 2 , 스택/큐 , 기능개발 자바스크립트 , JS (0) | 2022.09.23 |
프로그래머스 / Level 2 , 월간 코드 챌린지 시즌3 , n^2 배열 자르기 자바스크립트 , JS (1) | 2022.09.23 |