문제
- 문자열 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 |