고양이와 코딩

[ JAVA ] indexOf 가 머냐옹 본문

java

[ JAVA ] indexOf 가 머냐옹

ovovvvvv 2022. 12. 1. 00:51
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));

    }
}