Algorithm
[JavaScript] 한 번만 등장한 문자
황대성
2024. 7. 9. 22:37
문제 설명
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한사항
- 0 < s의 길이 < 1,000
- s는 소문자로만 이루어져 있습니다.
입출력 예
s | result |
"abcabcabc" | "d" |
"abdc" | "abcd" |
"hello" | "eho" |
풀이
function solution(s) {
var answer = '';
for(let i = 0; i<s.length;i++){
if(s.indexOf(s[i]) === s.lastIndexOf(s[i])){
answer += s[i]
}
}
return [...answer].sort().join("");
}
풀이 설명
나는 그렇게 생각한다. 문제의 유형은 외우는 것이라고. 나는 이 문제의 유형을 처음 봤다. 그래서 문제를 풀지 못했다. 문제를 보고 for문을 이용해서 중복되지 않는 문자만 answer에 넣으면 되는데 중복되는 것을 어떻게 찾는 것인지 감이 잡히지 않았다. 그래서 다른 사람의 풀이를 참고 했다. 한번 풀어 보자.
1. s의 길이 만큼 for문으로 반복하는데 만약 반복하는 s배열의 요소의 indexOf(s[i])와 lastIndexOf(s[i]) 즉, 앞부분 부터 찾는 요소와 뒷부분 부터 찾는 요소의 인덱스가 같으면 answer의 s[i] 요소를 넣는다.(인덱스가 같다면 요소는 한 번만 등장한 문자일테니)
2. 문자열 answer을 배열로 만들고, sort()메서드를 사용해 정렬한 후 다시 문자열로 만든다.