[알고리즘문제풀기] 중복된 문자 제거

silver's avatar
Jan 08, 2025
[알고리즘문제풀기] 중복된 문자 제거

문제

내가 작성한 정답

class Solution { public String solution(String my_string) { String answer = ""; for(char a : my_string.toCharArray()){ if(answer.indexOf(String.valueOf(a))== -1){ answer += a; } } return answer; } }
💡
indexOf 특정 문자 또는 문자열이 주어진 문자열에서 처음으로 나타나는 위치(인덱스)를 반환
인덱스: 찾은 문자 또는 문자열의 첫 번째 위치 (0부터 시작). -1: 찾는 문자나 문자열이 존재하지 않을 경우

다른 사람들의 정답

import java.util.*; class Solution { public String solution(String my_string) { String[] answer = my_string.split(""); // LinkedHashSet을 이용하여 중복을 제거하고 순서도 유지했다. // Arrays.asList : 배열을 List로 변환 Set<String> set = new LinkedHashSet<String>(Arrays.asList(answer)); return String.join("", set); } }
💡
String.join(구분자, 합칠 요소들이 있는 Iterable(ArrayList, HashSet, LinkedList…))
: 문자열을 하나의 문자열로 합친다.
import java.util.stream.Collectors; class Solution { public String solution(String my_string) { return my_string.chars() //IntStream .mapToObj(Character::toString) //Stream<String> .distinct() // 중복제거 + 각 문자가 처음 등장하는 순서대로 유지 .collect(Collectors.joining()); // 문자열로 결합 } }
Share article

silver