본문 바로가기

Algorithm/Inflearn

[Inflearn] 자바 알고리즘 문제풀이 #01-06 6. 중복문자제거

문제

설명

소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.

중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.

 

입력 

첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.

 

출력 

첫 줄에 중복문자가 제거된 문자열을 출력합니다.

 

 

 

코드
import java.util.Scanner;

public class Main1_6 {
    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)));
            // 알파벳의 현재 위치 i와 처음 발견된 위치 str.indexOf(str.charAt(i))가 같다
            // == 처음 등장한 알파벳이므로 answer에 추가. 같지 않다면 중복 문자이기 때문에 패스
            if(i == str.indexOf(str.charAt(i))) answer += str.charAt(i);
        }
        return answer;
    }

    public static void main(String[] args) {
        Main1_6 T = new Main1_6();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.Solution(str));
    }
}

 

 

 

결과

i와 str.indexOf(str.charAt(i))가 같은 숫자이면 처음 나온 알파벳

 

 

 

알게된 점

1. charAt()

2. indexOf()

https://rookie-programmer.tistory.com/18

 

[JAVA] 자바 String 클래스 주요 메소드

설명 String 클래스가 가지고 있는 (지원하는) 메소드들을 정리했다. 주요 메소드 append() : StringBuffer나 StringBuilder 객체 끝에 문자열을 붙인다. String은 + 연산자 혹은 concat() 함수를 이용해 이어 붙..

rookie-programmer.tistory.com