문자열에서 중복된 문자를 제거
나의 풀이
function solution(s) {
let answer = "";
for (let x of s) {
if (!answer.includes(x)) {
answer += x;
}
}
return answer;
}
console.log(solution("ksekkset"));
빈 문자열을 만들어, 해당 문자가 없으면 추가하도록 했다.
강사 풀이
function solution2(s) {
let answer = "";
for (let i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) === i) {
answer += s[i];
}
}
return answer;
}
console.log(solution2("ksekkset"));
indexOf(인자, n) :
첫번째 매개변수를 발견한 인덱스 리턴(발견하지 못하면 -1 리턴)
두번째 매개변수는 검색을 시작할 인덱스
첫번째 매개변수를 발견한 인덱스 리턴(발견하지 못하면 -1 리턴)
두번째 매개변수는 검색을 시작할 인덱스
만약 해당 문자의 인덱스 번호가 현재 반복문 인덱스와 다르면 이미 해당 문자열 앞에 해당 문자가 존재한다는 뜻이다.
그러므로 같은 인덱스인 것만 answer에 추가해준다.
번외: 특정 문자열 개수 찾는 법
function solution3(s) {
let answer = 0;
let pos = s.indexOf("k");
// 해당 인자 못 찾으면 -1 반환
while (pos !== -1) {
answer++;
pos = s.indexOf("k", pos + 1); // pos + 1 : 현재 찾은 인덱스 다음꺼 찾기
}
return answer;
}
console.log(solution3("ksekkset"));
특정 문자가 존재한다면(반환 값이 -1이 아니라면) while문을 돈다.
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션2 - 1, 2차원 배열 탐색 / 1. 큰 수 출력하기 (0) | 2023.01.05 |
---|---|
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 17. 중복 단어 제거 (0) | 2023.01.04 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 15. 가운데 문자 출력 (0) | 2023.01.04 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 14. 가장 긴 문자열 (0) | 2023.01.04 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 13. 대소문자 변환 (0) | 2023.01.04 |