주니어 기초 코딩공부/JAVA_programmers_코딩테스트

중복된 문자 제거_programmers_lev00

jju_developer 2022. 12. 9. 13:54
728x90

<코딩 테스트>

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하도록 solution 함수를 완성해주세요.

 

*my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
*대문자와 소문자를 구분합니다.
*공백(" ")도 하나의 문자로 구분합니다.
*중복된 문자 중 가장 앞에 있는 문자를 남깁니다.

 

<나의 풀이 과정>

처음에는 중복을 허용하지 않는 Set을 쓰려고 하다가

char [] 배열에 담아서 contains 메서드를 활용하였습니다.

char 배열에 담을 때 확인해서 정답을 담을 answer가 String이기 때문에

String.valueOf를 활용하여 하나씩 확인해 주었습니다. 

동일하게 indexOf도 활용해보면 좋을 것 같아서 아래 다른 사람 풀이에 첨부하였습니다.

 

<나의 풀이 코드>

class Solution {
    public String solution(String my_string) {
		String answer = "";
		char[] cArray = my_string.toCharArray();
			for (char c : cArray) {
			if (!answer.contains(String.valueOf(c)))
				answer = answer + c;
		}
		return answer;
	}
}

 

<다른사람 풀이 1>

import java.util.*;
class Solution {
    public String solution(String my_string) {
        String[] answer = my_string.split("");
        Set<String> set = new LinkedHashSet<String>(Arrays.asList(answer));

        return String.join("", set);
    }
}

 

<다른 사람 풀이 2>

class Solution {
    public String solution(String my_string) {
        String answer = "";

        for(int i=0; i<my_string.length(); i++){
            //my_string.indexOf(my_string.charAt(i));
            if(i==my_string.indexOf(my_string.charAt(i)))
                answer+=my_string.charAt(i);
        }

        return answer;
    }
}
728x90