반응형
문제 16번
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하 세요. 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
🍄 입력설명
첫 줄에 문자열이 입력됩니다.
🍄 출력설명
첫 줄에 중복문자가 제거된 문자열을 출력합니다.
🍄 입력예제 1
ksekkset
🍄 출력예제 1
kset
정답 코드
function solution(s) {
let answer = "";
for (let i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) === i) answer += s[i];
}
return answer;
}
let s = "ksekkset";
console.log(solution(s)); //kset 출력
indexOf(요소) 는 지정된 요소를 찾을 수 있는 첫번째 인덱스를 반환하고, 존재하지 않으면 -1을 반환한다.
console.log(s[i], i, s.indexOf(s[i]));
i와 s.indexOf(s[i]) 가 같은 경우가 해당 알파벳이 처음 나오는 위치!
따라서 같은 경우의 s[i]를 answer에 추가해주면 된다.
이렇게 풀어도 되는지는 모르겠다. 집합을 이용해 풀었다.
function solution(s) {
let set = new Set(s); //집합
let arr = [...set];
let answer = arr.join("");
return answer;
}
let s = "ksekkset";
console.log(solution(s)); //kset 출력
728x90
반응형
'알고리즘' 카테고리의 다른 글
[JS] 알고리즘 기초 정복 2-1번 - 큰 수 출력하기 (0) | 2021.07.13 |
---|---|
[JS] 알고리즘 기초 정복 17번 - 중복단어제거 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 15번 - 가운데 문자 출력 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 14번 - 가장 긴 문자열 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 13번 - 대소문자 변환 (0) | 2021.07.09 |