현재

6. 중복문자제거(indexOf()) 본문

알고리즘/기타알고리즘문제

6. 중복문자제거(indexOf())

AAAge 2024. 4. 3. 20:12
설명
중복문자를 제거해라.

예시 입력 1 

ksekkset

예시 출력 1

kset

 

<힌트 API>

더보기

indexOf() : 제일 처음으로 발견된 index 번호를 리턴한다.

<자체풀이>

더보기
import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        char inputList[] = sc.next().toCharArray();
        String answer ="";
        for ( int i = 0 ; i < inputList.length ; i++){
            char temp = inputList[i];
            if(temp != 0){
                answer += temp;
            }
            for ( int x = i+1; x < inputList.length; x++){
                if(inputList[x] == temp){
                    inputList[x] = 0;
                }
            }
        }
        // String answer = String.valueOf(inputList);
        System.out.println(answer);

        //ksekkset
        //kset

        sc.close();
    }
}

 

특정 배열에 0값을 대입했으므로 별로 좋은 풀이는 아니라고 생각한다.

<정답풀이>

더보기
import java.util.*;
class Main {    
    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);
        }
        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str=kb.next();
        System.out.print(T.solution(str));
    }
}