본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / 중복된 문자 제거 / Java

by unknownomad 2024. 7. 10.

문제

 

풀이

import java.util.Set;
import java.util.LinkedHashSet;

class Solution {
    public String solution(String my_string) {
    
        Set<Character> charSet = new LinkedHashSet<>(); // 순서 유지
        StringBuilder sb = new StringBuilder();
        
        for (int i = 0; i < my_string.length(); i++){
            char c = my_string.charAt(i);
            if (charSet.add(c)) { // 중복 아니면 true
                sb.append(c);
            }
        }
        return sb.toString();
    }
}
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());
            // collect(): 스트림 요소를 모아 하나의 문자열로 결합
            // Collectors.joining(): 스트림 각 요소 연결
    }
}
class Solution {
    public String solution(String my_string) {
        String answer = "";
        
        for (int i = 0; i < my_string.length(); i++) {
        	if (i == my_string.indexOf(my_string.charAt(i))) {
            	answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}
import java.util.*;

class Solution {
    public String solution(String my_string) {    
        String[] answer = my_string.split("");
        Set<String> set = new LinkedHashSet<>(Arrays.asList(answer));
        return String.join("", set);
    }
}

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120888

댓글