소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하 세요.
제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
[입력설명]
첫 줄에 문자열이 입력됩니다.
[출력설명]
첫 줄에 중복문자가 제거된 문자열을 출력합니다.
ksekkset
kset
s.indexOf('k')=0
: (s="ksekkset"이라고 가정)'k'문자가 '처음'으로 발견되는 인덱스를 리턴한다.s.indexOf('k', 1)=3
: 1번째 인덱스이후 'k'문자가 있는 인덱스s.indexOf(문자)=-1
이면, 문자를 문자열에서 발견하지 못한 경우이다. 즉 문자가 문자열에 없을 때 -1을 리턴한다.indexOf(문자)메소드는 처음으로 문자가 발견되는 인덱스이기 때문에, 이후에 같은 문자가 발견되더라도 처음 그 문자가 발견된 인덱스를 리턴한다.
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s){
let answer="";
//console.log(s.indexOf("k")); 0
//console.log(s.indexOf("k", 1)); 3
for(let i=0; i<s.length; i++){
//console.log(s[i], i, s.indexOf(s[i]));
if(s.indexOf(s[i])===i) answer+=s[i]; //처음발견된 것만 answer에 추가
}
return answer;
}
console.log(solution("ksekkset"));
</script>
</body>
</html>
kset
<!--추가: 특정문자('k')가 몇개 있는지 카운팅하기-->
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s){
let answer=0; //카운팅
let pos=s.indexOf('k'); //초기 pos값은 0(0번째 인덱스에 k있음)
while(pos!==-1){
answer++;
pos=s.indexOf('k', pos+1);
}
return answer;
}
console.log(solution("ksekkset"));
</script>
</body>
</html>
3
9/10