프로그래머스 JS LV0

LV0 56 A로 B 만들기

와라리요 2022. 10. 22. 21:30

문제

 - 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하도록 solution 함수를 완성해주세요.

 

입출력 예

before after result
"olleh" "hello" 1
"allpe" "apple" 0

 

나만의 풀이

  처음에는 이 문제를 어떻게 풀어야 하나 감이 안 잡힌 상태로 문제만 바라 보았다. 비교를 하는 방법이 뭐가 있을까 계속 고민하는 중 before, after 배열로 바꾼 후 sort()를 이용해 알파벳순으로 정렬하고 for문과 if문을 이용해 새롭게 선언한 배열에 같은 위치에 같은 알파벳이 존재하면 push한 후 before과 새로운 배열에 length를 비교하여 삼항 연산자를 이용해 같다면 1을 아니면 0을 return하게 했다.

function solution(before, after) {
    let beforeArr = [...before].sort();
    let afterArr = [...after].sort();
    let arr = [];
    
    for (let i = 0; i < before.length; i++) {
        if (beforeArr[i] === afterArr[i]) {
            arr.push(beforeArr[i]);
        }
    }
    return arr.length === beforeArr.length ? 1 : 0;
}

  그런데 더 짧게 만들 수 있을 것 같아서 계속 고민하다 보니 보였다. 우선 sort()까지는 동일하게 하고 join('')을 이용해 합친 후 삼항 연산자를 이용해 1 : 0을 return하게 했다.

function solution(before, after) {
    let answer = [...before].sort().join('') === [...after].sort().join('') ? 1 : 0;
    return answer;
}

'프로그래머스 JS LV0' 카테고리의 다른 글

LV0 58 모스부호 (1)  (0) 2022.10.25
LV0 57 잘라서 배열로 저장하기  (0) 2022.10.25
LV0 55 중복된 문자 제거  (0) 2022.10.22
LV0 54 합성수 찾기  (0) 2022.10.22
LV0 53 2차원으로 만들기  (0) 2022.10.21