고양이와 코딩
[ JAVA ] indexOf 가 머냐옹 본문
728x90
자바 알고리즘 강의를 아무것도 모르는 채로 박치기 중인데,
indexOf를 이용한 문제를 푼다 하여
난 그게 뭔지 모르는데?
바로 찾아서 내가 이해하기 쉽게 정리해 보려고 한다.
Q.중복 문자 제거 문제
찾아보니 indexOf는....그냥 이름 그자체이다 ... ㅋ ^///^
if(str.indexOf(str.charAt(i)) == i)
이게 내가 쓴 코드이다.
indexOf(String str)은 문자열에서 같은 문자의 위치를 찾는다.
(여기서 charAt()은 string으로 저장된 문자열 중에서 하나만 선택해 char타입으로 바꿔 준다.)
따라서 if문을 사용해 비교를 할 때 내가 문자열을 입력하면 i번째에 있는 문자만을 가져와 비교할 수 있다.
예를들어 goguma 라는 문자열에서 indexOf를 사용했기 때문에 0,1,2,3... 이렇게 순서가 매겨지는데,
2로 출력되야할 g가 중복이기 때문에 0으로 뜨게 된다.
이 if문으로 비교해 어떤 문자가 중복이 되는지 알 수 있게 한다.
완전 이해했으
class jcode062 {
public String solution(String str){
String answer="";
for(int i=0; i<str.length(); i++) {
// System.out.println(str.charAt(i) + " " + i + " " + str.indexOf(str.charAt(i)));
if(str.indexOf(str.charAt(i))==i)
answer+=str.charAt(i);
//이게 거짓이면 중복된 문자
//참일때만 answer로 넘어감
}
return answer;
}
public static void main(String[] args){
jcode062 T =new jcode062();
Scanner kb = new Scanner(System.in);
String str= kb.next();
System.out.print(T.solution(str));
}
}