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

[프로그래머스] 튜플(LV.2) by javascript - 2019 카카오 개발자 겨울 인턴십

by 썸머워즈 2022. 3. 10.
반응형

▷ 문제 : 2019 카카오 개발자 겨울 인턴십 - 튜플 LV.2

 

코딩테스트 연습 - 튜플

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr


해결 날짜 : 2022.03.08
소요 시간 : 20분
▷ 풀이 과정 :
생각보다 간단한 문제이다.
제한사항을 살펴보면 s가 표현하는 튜플의 원소는 1 이상 이라는 조건이 붙어있기 때문에,
"{{4,2,3},{3},{2,3,4,1},{2,3}}" 이 조건을 살펴보면 중복되는 녀석들만 제거해주고 사용하면 된다는걸 알 수 있다.
그래서 앞뒤로 {{}}를 제거해주고 숫자만을 남기기위해 "},{"를기준으로 잘라준다음 반환 조건에 맞게 정렬을 해주었다.

그 다음 튜플의 집합을 구하면 끝나는 구조였다.

구현

function solution(s) {
    let answer = [];
    let tuples = s.slice(2, -2).split(/},{/g).sort((a, b) => a.length - b.length);

    tuples.forEach(v => {
        let tuple = v.split(',');
        answer.push(tuple.find(e => !answer.includes(e)));
    });

    return answer.map(e => Number(e));
}


복기 :
2단계 문제치고 난이도가 1단계 문제와 비슷하다...아마?
너무 쉬운문제라 이런것만 있으면 얼마나 좋을까싶다 그럼 아주 재밌게 풀텐데

그래도 성능 측면에서 좀 더 개선을 해야할 듯 하다 값이 커지면 생각보다 많이 느린 결과가 나오는걸 보니

반응형


댓글

TOP