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
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
A로 B 만들기_programmers_lev00 (0) | 2022.12.11 |
---|---|
모스 부호 (1)_programmers_lev00 (1) | 2022.12.09 |
합성수 찾기_programmers_lev00 (0) | 2022.12.09 |
369게임_programmers_lev00 (0) | 2022.12.08 |
문자열 정렬하기 (2)_programmers_lev00 (2) | 2022.12.08 |