코딩테스트/기초
6. 중복문자제거
누리는 귀여워
2024. 12. 2. 22:49
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
for(int i = 0; i < str.length(); i++) {
// str에서 현재 인덱스 i에 해당하는 문자를 가져옴
// 가져온 문자의 첫번째 위치를 찾는다
if(str.indexOf(str.charAt(i)) == i) {
answer += str.charAt(i);
}
}
return answer;
}
public static void main(String []args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
문자열이 "banana"일 때:
i = 0: str.charAt(0)은 'b'이고, indexOf('b')는 0. (같으므로 'b'를 answer에 추가)
i = 1: str.charAt(1)은 'a'이고, indexOf('a')는 1. (같으므로 'a'를 answer에 추가)
i = 2: str.charAt(2)는 'n'이고, indexOf('n')는 2. (같으므로 'n'을 answer에 추가)
i = 3: str.charAt(3)은 'a'이고, indexOf('a')는 1. (다르므로 'a'는 추가하지 않음)
i = 4: str.charAt(4)은 'n'이고, indexOf('n')는 2. (다르므로 'n'은 추가하지 않음)
i = 5: str.charAt(5)은 'a'이고, indexOf('a')는 1. (다르므로 'a'는 추가하지 않음)
결과적으로 answer에는 "ban"이 저장됨.
indexOf는 해당되는 문자가 문자열에 여러개 있을 때 가장 앞에 위치한 문자를 반환
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
for(int i = 0; i < str.length(); i++) {
if(str.indexOf(str.charAt(i)) == i) {
answer += str.charAt(i);
}
}
return answer;
}
public static void main(String []args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}