프로그래머스 0단계 "한 번만 등장한 문자"
난 반복문을 돌려서 배열을 .sort()로 문자끼리 정렬시켜준 다음 ,
각 요소의 바로 전 요소와 바로 다음 요소가 모두 다르지 않다면
result 배열에 push해주는 방법으로 해결을 했는데,
나름 신선하다고 생각했는데 아래 방법이 더욱 좋은것 같다.
해결 방법: 요소가 등장하는 첫번째 인덱스와 마지막 인덱스가 같다면 한번만 등장한 요소
let s = "abcabcadc";
function solution(s) {
let result = [];
for (let el of s) if (s.indexOf(el) === s.lastIndexOf(el)) result.push(c);
return result.sort().join('');
}
//"d"
프로그래머스 1단계 "문자열 다루기 기본"
지금까지 문제를 풀면서 가장 많이 등장했던 것 중 하나라고 생각한다.
배열의 요소를 map으로 돌릴때 el이 숫자가 아니라면(문자열이라면)
제외하거나 특정 문자열로 변환하는 것이다.
이건 isNaN()을 사용해주면 쉽게 해결할 수 있다.
let arr = ["a","1","2","3"] //여기서 "a"만 "돼지"로 바꾸고 싶다면?
let result = arr.map(el=>{ return isNaN(Number(el)) ? "돼지" : el })
//["돼지", "1", "2", "3"]
return result.includes("돼지") ? true : false
//includes()를 사용해 "돼지"의 포함 유무에 따라 다른 리턴값이 나오게 할 수도 있다.