728x90
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백(" ")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력 예
my_string | result |
"people" | "peol" |
"We are the world" | "We arthwold" |
입출력 예 설명
입출력 예 #1
- "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
입출력 예 #2
- "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Solution {
public String solution(String my_string) {
String answer = "";
loop:
for(char c : my_string.toCharArray()) {
for(char ch : answer.toCharArray()) {
if(c==ch) continue loop;
}
answer += c;
}
return answer;
}
}
|
char 배열을 만들어 반복한다. 이미 만들어진 문자열에 해당 글자가 있으면 다음으로 건너간다. 없으면 문자를 분자열에 붙여준다. |
1
2
3
4
5
6
7
8
9
10
|
import java.util.stream.Collectors;
class Solution {
public String solution(String my_string) {
return my_string.chars()
//.mapToObj(Character::toString)
.mapToObj(v -> (char)v+"")
.distinct()
.collect(Collectors.joining());
}
}
|
String을 IntStream으로 만들고 my_string.chars() Stream<String>으로 변환하고 .mapToObj(Character::toString) 또는 .mapToObj(v -> (char)v+"") 중복을 제거하고 .distinct() String으로 만든다. .collect(Collectors.joining()); |
728x90
'프로그래머스 코딩(자바) > Level 0' 카테고리의 다른 글
Programmers Level 0 - A로 B 만들기 (0) | 2023.03.03 |
---|---|
Programmers Level 0 - 모스부호 (1) (0) | 2023.03.03 |
Programmers Level 0 - 합성수 찾기 (2) | 2023.03.03 |
Programmers Level 0 - 문자열 정렬하기 (2) (0) | 2023.03.03 |
Programmers Level 0 - 숫자 찾기 (0) | 2023.03.03 |