Algorithm

[Algorithm/Java] 알고리즘 자바 중복 문자 제거 (코딩테스트, String, 문자열, 중복된 문자를 제거)

권락현 2022. 3. 14. 20:32


1. 문제 설명

  • 설명 : 소문자로 된 한 개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요. 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
  • 입력 : 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.
  • 출력 : 첫 줄에 중복문자가 제거된 문자열을 출력합니다.

 

2. 문제 코드 및 풀이 설명

import java.util.Scanner;

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

  // 해결방법
  // 맨 앞에 중복되지 않는 문자만 남기자
  // 앞에 동일한 문자가 나왔다면 뒤에 문자는 포함시키지 말자
  public String solution(String str) {
    String answer = "";
    for (int i = 0; i < str.length(); i++) {
      //str.indexOf(str)은 str의 배열에서 처음 검색되는 위치를 리턴
      //그래서 str.indexOf(str.charAt(i))가 배열의 위치 i와 같다면 그 문자는 맨 앞에 있는 중복되지 않은 문자
      //만약 같지 않다면 이미 앞에 동일한 문자가 있다는 말
      if (str.indexOf(str.charAt(i)) == i) //같을 때만 리턴, 중복되지 않은 문자만 카운트
        answer += str.charAt(i);
    }
    return answer;
  }
}

 

3. 출력 예시

입력
abcabcdddef

출력
abcdef
=> 중복되는 문자 제거 후 하나씩만 출력

위의 내용은 인프런에서 수강할 수 있는 김태원님의 자바 알고리즘 문제풀이 강의를 바탕으로 공부한 내용을 정리한 내용입니다!

https://inf.run/iAi6

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com