알고리즘 문제를 풀다보면 중복된 문자를 제거해야하는 경우가 많이 생긴다.
맨날 헷갈리니까 아예 정리해놓으려고 한다.
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에 더해지지 않는다.
'알고리즘 > 자료구조와 알고리즘' 카테고리의 다른 글
[Algorithm] DFS 알고리즘 (깊이 우선 탐색) (0) | 2022.01.20 |
---|---|
[Algorithm] 유클리드 호제법(유클리드 알고리즘) _ 재귀 함수 (0) | 2022.01.19 |
[Algorithm] 탐욕(그리디) 알고리즘 (greedy algorithm) (0) | 2021.09.30 |
[Algorithm] 이진 검색 알고리즘 (0) | 2021.09.13 |
[Algorithm][Java] 소수를 나열하는 알고리즘, 소수인지 판단하기 (0) | 2021.08.23 |