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

Lainlnya·2023년 1월 24일
0

프로그래머스

목록 보기
8/49
post-thumbnail

문제

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

제한사항

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

입출력 예

문제 풀이

function solution(s) {
  let answer = '';
  let one_time = new Map();
  s = [...s].sort();
  let count = 0;

  for (let i = 0; i < s.length; i++) {
    if (!one_time.has(s[i])) {
      count = 0;
    }
    one_time.set(s[i], count++);
  }

  for (let [key, value] of one_time.entries()) {
    if (value === 0) {
      answer += key;
    }
  }
  return answer;
}

추가

map을 이용해서 key에 알파벳을, key가 등장하는 횟수를 value로 지정해서, 하나만 있는 것을 return 하도록 만들었다.

다른 분의 코드를 보다가 첫 인덱스와 마지막 인덱스가 동일한 것을 return 하는 것을 보고, 다른 자료구조를 선언할 필요 없이 인덱스를 사용해서 접근하는 방법도 가능하다는 것을 알게 되었다.

  let res = [];
  for (let r of s) {
    if (s.indexOf(r) === s.lastIndexOf(r)) {
      res.push(r);
    }
  }

  return res.sort().join('');
profile
Growing up

0개의 댓글