알고리즘/자료구조와 알고리즘

[Algorithm] 중복된 문자 제거하기 for JAVA

정석이 2021. 11. 5. 16:15

 

 

알고리즘 문제를 풀다보면 중복된 문자를 제거해야하는 경우가 많이 생긴다.

 

 

맨날 헷갈리니까 아예 정리해놓으려고 한다.

 

 

 

import java.util.Scanner;


public class duplicateChar {
	public static void main(String[] args) {
		duplicateChar main = new duplicateChar();
		Scanner scan = new Scanner(System.in);
		String str = scan.next();
		System.out.println(main.solution(str));
	}
	
	public static String solution(String str) {
		String answer = "";
		
		for(int i = 0; i < str.length(); i++)
			if(str.indexOf(str.charAt(i)) == i)
				answer += str.charAt(i);
		
		return answer;
	}

}

 

 

 

 

여기서 charAt(i)은 i번째 문자를 반환하는거고

 

 

indexOf()는 그 문자가 처음 존재하는 인덱스를 반환하는 것이다.

 

 

처음 존재하는 인덱스가 i와 같으면 answer에 그 문자를 더한다.

 

 

문자가 중복되면 != i 가 되므로 answer에 더해지지 않는다.