[알고리즘 / JS] 중복된 문자 제거
1. 문제
문자열 한 개가 입력되면 입력된 문자 중에 중복된 문자를 제거하고, 원래 문자열의 순서대로 출력하는 프로그램을 작성하라.
2. 입/출력 예제
입력예제:
asfekfjelkfhakl
출력예제:
asfekjlh
3. 알고리즘 원리
string
객체의 내장함수인 indexOf()
를 사용할 수 있는지 여부를 판단합니다.indexOf()
메소드는 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다.
만약 일치하는 값이 없으면 -1을 반환합니다.
4. 알고리즘 풀이
- 입력된 문자열을 탐색합니다.
indexOf()
메소드를 이용, 입력된 문자열을 매개변수로 주어 해당 문자가 첫 번째로 등장하는 인덱스를 구합니다.- 2번에서 구한 인덱스와, 실제 문자열의 인덱스가 같을 때,
- 해당 문자열이 최초로 등장할 때,
- 문자열을 순서대로 출력할 변수에 쌓아줍니다.
function solution(str) {
let answer = "";
// 1. for 문을 이용하여 입력된 문자열을 탐색
for (let i = 0; i < str.length; i++) {
// 2. indexOf() 메소드로 찾은 인덱스 == 현재 문자열의 인덱스
if (str.indexOf(str[i)) === i) {
// 3. 최초로 등장한 문자열을 answer 변수에 순차적으로 추가
answer += str[i];
}
}
return answer;
}
solution("asfekfjelkfhakl");
'Algorithm > 알고리즘' 카테고리의 다른 글
[알고리즘 / JS] 가운데 문자 출력 (0) | 2023.07.13 |
---|---|
[알고리즘 / JS] 자동차 10부제 (0) | 2023.07.13 |