728x90
반응형

한 번만 등장한 문자
문제설명
: 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해 보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한 사항
- 0 < s의 길이 < 1,000
- s는 소문자로만 이루어져 있습니다.
입출력 예
s | result |
"abcabcadc" | "d" |
"abdc" | "abcd" |
첫번째 접근
: s를 split으로 쪼갠 후, 배열에 반복문들 돌려 각 요소에 arr.indexOf()와 arr.lastIndexOf()를 사용한 값이 같으면 한 번만 등장한 문자이므로 이들을 합쳐 반환할 수 있다.
function solution(s) {
let order = s.split('').sort();
let str = '';
for(let i=0; i<order.length; i++){
if(order.indexOf(order[i]) === order.lastIndexOf(order[i])){
str += order[i]
}
}
return str
}
두 번째 접근
: 매번 느끼지만, 난 for 문의 노예이다. 그래서 반복문을 사용하지 않고 해결할 수 있는 방법이 없을까 생각해 보았다. 음.. for 대신 forEach를 사용해 볼 수 있을 것 같다.
function solution(s) {
let order = s.split('').sort();
let str = '';
order.forEach(el => order.indexOf(el) === order.lastIndexOf(el) ? str += el : str)
return str
}
solution
function solution(s) {
let res = [];
for (let c of s) if (s.indexOf(c) === s.lastIndexOf(c)) res.push(c);
return res.sort().join('');
}
728x90
반응형
'자료구조 및 알고리즘 > JavaScript Practice' 카테고리의 다른 글
JS Practice) 프로그래머스 : 공 던지기 (0) | 2023.03.24 |
---|---|
JS Practice) 프로그래머스 : 영어가 싫어요 (0) | 2023.03.23 |
JS Practice) 프로그래머스 : 숨어있는 숫자의 덧셈(2) (0) | 2023.03.21 |
JS Practice) 프로그래머스 : 이진수 더하기 (0) | 2023.03.20 |
JS Practice) 프로그래머스 : 진료 순서 정하기 (0) | 2023.03.17 |