[프로그래머스] Lv.0 - 한 번만 등장한 문자

·2023년 4월 21일
0

Programmers

목록 보기
21/30
post-thumbnail

✨ 문제설명

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

🔥 제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있습니다.

입출력 예


🌟 풀이

✅ 내 풀이

function solution(s) {
  let array = s.split('').sort();
  return array
    .filter((value, index) => {
      return value !== array[index - 1] && value !== array[index + 1];
    })
    .join('');
}

문자열을 배열로 바꾼 뒤, 정렬해 놓는다.
filter 함수를 사용해 특정 value를 앞/뒤 값을 비교한 뒤, 앞/뒤 값과 동일하지 않은 값들만 return 한다.


✅ 다른 사람 풀이

function solution(s) {
  let res = [];
  for (let c of s) {
    if (s.indexOf(c) === s.lastIndexOf(c))
      res.push(c);
  }
  return res.sort().join('');
}

반복문을 돌며 s에 있는 특정 value의 index를 비교한다.

s가 'abcabcadc'일 경우
s.indexOf('a') = 0 // a를 앞에서부터 검색
s.lastIndexOf('a') = 6 // a를 뒤에서부터 검색

유일한 값만 결과값을 저장하는 배열에 넣고 정렬한 뒤 문자로 변환한다.

profile
🎨

0개의 댓글